Hej. Piszę grę w kółko i krzyżyk w c i mam pewien problem mianowicie chodzi o symulowanie ruchu komputera.Znalazłem coś na internecie. Czy jest ktoś w stanie pomóc mi z przerobieniem tego kawałka kodu na algorytm alfa-beta ? Samą ideę algorytmu rozumiem, jednak dłuższy czas głowię się nad implementacją i nie potrafię sobie z tym poradzić. Pozostała część kodu gry wydaje mi się działająca. Bardzo proszę o pomoc.
int minimax(int* plansza, int player)
{
int winner = rezultatGry(plansza);
if (winner != 0)
{
return winner * player;
}
int move = -1;
int score = -2;
for (int i = 0; i < 25; ++i)
{
if (plansza[i] == 0)
{
plansza[i] = player;
int thisScore = -minimax(plansza, player * -1);
if (thisScore > score)
{
score = thisScore;
move = i;
}
plansza[i] = 0;
}
}
if (move == -1) return 0;
return score;
}
void ruchKomputera(int* plansza)
{
int ruch;
int wynik = -2;
for (int i = 0; i < 25; ++i)
{
if (plansza[i] == 0)
{
plansza[i] = 1;
int tempScore = -minimax(plansza, -1);
plansza[i] = 0;
if (tempScore > wynik)
{
wynik = tempScore;
ruch = i;
}
}
}
plansza[ruch] = 1;
}