Algorytm określania przekroczenia Tic Tac Toe
Napisałem grę w kółko i krzyżyk w Javie, a moja obecna metoda określania końca gry uwzględnia następujące możliwe scenariusze zakończenia gry:
Plansza jest pełna, a żaden zwycięzca nie został jeszcze ogłoszony: Gra to remis.Cross wygrał.Wygrał Circle.Niestety, aby to zrobić, odczytuje predefiniowany zestaw tych scenariuszy z tabeli. Niekoniecznie jest to złe, biorąc pod uwagę, że na planszy jest tylko 9 pól, a zatem tabela jest nieco mała, ale czy istnieje lepszy algorytmiczny sposób określenia, czy gra się skończyła? Ustalenie, czy ktoś wygrał, czy nie, jest problemem tego problemu, ponieważ sprawdzenie, czy 9 spacji jest pełne, jest banalne.
Rozwiązaniem może być metoda tabelowa, ale jeśli nie, to co? Ponadto, jeśli deska nie była wielkościn=9
? Co, jeśli powiedzmy, byłaby to dużo większa deskan=16
, n=25
i tak dalej, dzięki czemu liczba kolejno umieszczanych przedmiotów wygrax=4
, x=5
, itp? Ogólny algorytm do użycia dla wszystkichn = { 9, 16, 25, 36 ... }
?