Функция, которую я пытаюсь реализовать, возвращает оптимальный ход из tictactoe игры, которая вводит функцию, которая возвращает тип (GameState -> Player -> Option (Move) * int -> Move)
в основном мне нужно получить значение Move, которое определено как
type Move =
{ Row:int; Col:int }
type Player = Nought | Cross
type GameState =
{ Turn: Option<Player>; Size:int; board:Map<int*int, Option<Player>> }
Поскольку одна из функций ввода возвращает кортеж (Some (оптимальный ход типа Move), оценка, связанная с ходом (целое число))
Я думал, что это будет работать
match (MiniMax game.board game.Turn) with
| (Some({Row = x; Col = y;}), _) -> {Row=x Col=y}
| (None, _) ->
, но я получаю сообщение об ошибке с указанием;«Предполагалось, что это выражение будет иметь тип« GameState -> Player -> Option (Move) * int », но здесь имеет тип a * b» »
Как сопоставить результат с (MiniMaxResult: Option (Move)) * int), чтобы я мог извлечь только тип Move ??
Два игрока;ничто или крест и состояние игры;содержит информацию о действиях на доске, размере, чей ход