sig
module type Game =
sig
type gameField
type move
val get_moves : Minimax.Game.gameField -> Minimax.Game.move list
val make_move :
Minimax.Game.move -> Minimax.Game.gameField -> Minimax.Game.gameField
val is_endpos : Minimax.Game.gameField -> bool
end
module type M =
sig
type gameField
type move
val byDepth :
(Minimax.M.gameField -> float) ->
int -> Minimax.M.gameField -> Minimax.M.move
val byTime :
(Minimax.M.gameField -> float) ->
float -> Minimax.M.gameField -> Minimax.M.move
val byNodes :
(Minimax.M.gameField -> float) ->
int -> Minimax.M.gameField -> Minimax.M.move
end
module Make :
functor (G : Game) ->
sig
type gameField = G.gameField
type move = G.move
val byDepth : (gameField -> float) -> int -> gameField -> move
val byTime : (gameField -> float) -> float -> gameField -> move
val byNodes : (gameField -> float) -> int -> gameField -> move
end
end