Rozdział 17 · Model i zasady
Poprawny algorytm ruchu
Jeden ze sposobów wykonania ruchu – szach, ruch, zasady, zmiana gracza.
Jaki jest ważny ruch?
attempt_move(index) - Jedna ścieżka dla myszy i klawiatury
(Rozdział 17.24). Przeanalizujmy to w dwóch etapach: najpierw filtr ważności, potem co się dzieje
po tym, jak przeprowadzka już została podjęta.
Diagram 1 – Filtr Poprawności Tury
Nieprawidłowy ruch NIE zmienia gracza
To częsty błąd (Debug Lab 7, sekcja 17.29): jeśli kliknięcie zostanie zignorowane, tura musi pozostać taka sama. Gracz zmienia tylko PO udanym ruchu.
Diagram 2 – Co się dzieje po prawidłowym ruchu
Widoczny rezultat poprawnego ruchu
Przełączanie gracza — trzy równoważne sposoby
smena_igroka_razvernuto.py
if current_player == "X":
current_player = "O"
else:
current_player = "X"
smena_igroka_kratko.py
current_player = "O" if current_player == "X" else "X"
Najpierw czytelność, potem zwięzłość
Obie wersje robią to samo. Rozszerzona wersja wyraźnie brzmi "if/otherwise" — łatwiej zacząć od niej. Krótka wersja (warunkowa, rozdział 9; często nazywana operatorem ternarnym) nie jest "mądrzejsza", po prostu bardziej zwarta, gdy czytasz ją już pewnie.
Praktyka: logika jednego ruchu
Automatyczny test – walidacja tur i przełączanie zawodnika na czyste funkcje