Gra Kółko i Krzyżyk napisana w c++ z użyciem biblioteki SFML pozwalającej na stworzenie GUI. W grze można grać przeciwko innemu graczowi, lub zmierzyć się z algorytmem MinMax. Algorytm MinMax jest rozszerzony o cięcia alfa beta, aby działał optymalniej. Gra obsługuje wiele rozmiarów plansz (od 3x3 do 6x6) i umożliwia ustawienie ile pól wygrywa.
- Po zaimplementowaniu algorytmów program zawsze wygrywa (jeśli gramy nieefektywnie), lub remisuje, gdy gramy efektywnie. Oznacza to, że algorytm został wdrożony odpowiednio i działa prawidłowo.
- Implementacja algorytmu cięć alfa beta znacznie poprawia szybkość pracy programu, zwłaszcza dla dużych plansz.
- Zauważyłem, że gdy algorytm wie, że na pewno wygra to nie wygrywa od razu, tylko na przykłąd w kolejnym ruchu, ale w żadnym wypadku gdy algorytm ma wygraną "w ręku" nie udało mi się wygrać.
- Dla wielkości 5x5 program działa bardzo wolno, gdyż z każdą możliwością ruchu musi wyliczyć bardzo dużo wariantów. Zmniejszenie maksymalnej głębokości pomaga, ale niestety wtedy program nie potrafi się bronić przed atakiem i przegrywa.