У меня есть таблица и некоторые функции, такие как Generate_moves () и т. Д., Но для работы алгоритма minmax мне нужно установить оценку для таблиц, чтобы компьютер выбирал лучшую таблицу.
public int Score()
{
if (Turn == "X")
{
if (gameWon("X")) return 100;
if (gameWon("O")) return -100;
if (gameDrawn()) return 0;
return n - canWin("X");
}
if (Turn == "O")
{
if (gameWon("O")) return 100;
if (gameWon("X")) return -100;
if (gameDrawn()) return 0;
return n - canWin("O");
}
return -1;
}
My canWin(string)
возвращает число, которое говорит мне, сколько X или O у меня есть в прямой или столбце, но я сомневаюсь, что было бы здорово установить счет для таблицы.
Если у меня есть таблица:
X - X
0 X 0
- - 0
оценка должна быть такой же, как
X - -
0 - X
0 0 X
и должна быть больше, чем
X - X
0 - -
- 0 -
ИЯ понятия не имею, как заставить функцию «Счет» сообщать мне разные оценки.Как я могу реализовать метод Score, чтобы сказать мне это?
Редактировать:
, если компьютер сначала с X, а я с O
X - - X - - X - - X - -
- - - -> 0 - - -> 0 X - -> 0 X -
- - - - - - - - - - - 0
, теперь как я могу сделатькомпьютер выбирает, что следующим лучшим вариантом будет
X - X
0 X -
- - 0