Rozdział 17 · Interfejs gry
Wyróżnianie linii zwycięskiej
Model już wie, które trzy komórki wygrały – render() po prostu je maluje.
Dane liniowe prowadzą do oświetlenia
find_winner(board)
↓
('X', (0, 4, 8))
↓
state.winning_line = (0, 4, 8)
↓
render()
↓
buttons[0], [4], [8] — zielone tło
podsvetka_linii.py
for index, btn in enumerate(self.buttons):
is_win_cell = state.winning_line is not None and index in state.winning_line
btn.config(bg=WIN_BG if is_win_cell else NEUTRAL_BG)
Podkreśl DOKŁADNIE linię — nie byle jakie pasujące symbole
Jeśli na polu jest na przykład cztery „X”, ale zwyciężyły tylko trzy z nich na diagonali — podświetlane jest ŚCISŁO
winning_line, nie każda komórka oznaczona jako „X” index in state.winning_line to gwarantuje.
Praktyka: Podkreśl zwycięską linię
Moduł tkinter otwiera natywne okno Python — wykonaj lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie