Funkcja oceniająca stan gry w kółko i krzyżyk

0

Witam, piszę sobie właśnie sztuczną inteligencję do gry Kółko-Krzyżyk. Będzie się ona opierała na algorytmie minimax z odcięciami i mam problem z funkcją oceniającą stan gry. Posiadam takie coś lecz nie działa:

http://4programmers.net/Pastebin/3597

Chcę aby funkcja sprawdzała każdą rząd, kolumne i skosy tak aby zliczała puste pola przed, liczbę znaków koło siebie oraz puste pola po i dla każdych znalezionych kombinacji liczyła i dodawała punkty Np. gdy mamy 4 takie same znaki obok siebie poprzedzonych 1 lub więcej pustych pól a z drugiej strony inny znak to daje określoną liczbę punktów.

1- oznacza kółko
2- oznacza krzyżyk
0- oznacza puste pole

Dla kombinacji 0110100112200 żeby znajdowało:

  1. Puste pola przed:1
    Liczba znaków: 2
    Puste pola po: 1
  2. Puste pola przed:1
    Liczba znaków: 1
    Puste pola po: 2
  3. Puste pola przed:2
    Liczba znaków: 2
    Puste pola po: 0
  4. Puste pola przed:0
    Liczba znaków: 2
    Puste pola po: 2

Tutaj dałem wielokrotnie zagnieżdzone if-y i mam pytanie czy to dobry plan, czy może jest jakiś lepszy sposób ponieważ będzie się to wykonywało po kilka tysięcy razy na sekundę i zależałoby mi na wydajności.
Proszę o jakieś wskazówki i z góry dzięki za pomoc

0

Nie bardzo mam teraz czas na analizę tego kodu, ale nie lepiej zrobić, żeby funkcja wykonała się raz, po każdym ruchu, niż "kilka tysięcy razy na sekundę"?

0

Jak rozumiem, wykonuje się raz po każdym ruchu - analizowanych jest kilka tysięcy ruchów na sekundę.

0

Tak, ta funkcja będzie wykonywana dużo razy zależnie od ilości ruchów jakie komputer będzie przewidywał do przodu. Dla 8 ruchów do przodu będzie to pewnie kilka milionów razy

1 użytkowników online, w tym zalogowanych: 0, gości: 1