《Dice of Doom:函数式风格游戏的开发与优化》
1. 人机对战功能与示例游戏
在人机对战中, play-vs-computer
函数会先输出当前游戏状态的信息。若没有可用的移动,就会调用 announce-winner
函数宣布获胜者。接着,需要检查当前玩家是谁,约定人类玩家为玩家 A(玩家 0)。若玩家编号为 0,调用 handle-human
函数让人类玩家决定移动;否则,将玩家视为 AI 玩家,使用 handle-computer
函数决定移动。
以下是一个人机对战的示例游戏,电脑以最优策略获胜:
> (play-vs-computer (game-tree (gen-board) 0 0 t))
current player = a
a-3 b-3
a-2 b-2
choose your move:
1. 0 -> 3
1
current player = a
a-1 b-3
a-2 a-2
choose your move:
1. end turn
1
current player = b
a-2 b-3
a-2 a-2
current player = b
b-2 b-1
a-2 a-2
current player = a
b-3 b-1
a-2 a-2
choose your move:
1. 3 -> 1
1
current player = a
b-3 a-1
a-