kalah:Kalah 游戏,可插入人类、随机和 AI 玩家。 人工智能

时间:2024-06-19 09:19:25
【文件属性】:

文件名称:kalah:Kalah 游戏,可插入人类、随机和 AI 玩家。 人工智能

文件大小:11KB

文件格式:ZIP

更新时间:2024-06-19 09:19:25

C++

卡拉游戏 用法:./kalah Kalah(m,n),其中m =每侧Kong,n =每Kong种子,在文献[1]中已被强力求解。 此处定义的问题实际上是 Kalah(6, 30),这是由于种子的随机分配导致状态空间太大而无法计算完整游戏数据库。 因此,我选择使用极小极大搜索算法,并选择了 MTD(f)[2] 与迭代深化 [2, 3, 4, 5] 和转置表 [3,4,5]。 我对董事会使用了一点表示。 每个房子最多可以包含 60 个种子,所以我使用 6 位 (2^6-1=63) 来表示每个房子。 有 14 个房子( 6 = 84 位),所以我使用了一个 128 位的无符号整数(gcc 中的 __uint128_t)。 我选择这种表示法是因为这意味着播种可以简单地用加法和减法来表示,而且我不再需要使用哈希函数来表示博弈树中的棋盘。 它还可以将开发板的内存使用量从14 sizeof(int)


【文件预览】:
kalah-master
----src()
--------AIPlayer.h(1KB)
--------AIPlayer.cpp(5KB)
--------RandomPlayer.cpp(756B)
--------Board.h(773B)
--------kalah.cpp(1KB)
--------IPlayer.h(266B)
--------Game.cpp(3KB)
--------Game.h(261B)
--------Board.cpp(3KB)
--------HumanPlayer.cpp(1KB)
--------HumanPlayer.h(385B)
--------RandomPlayer.h(403B)
----README.md(2KB)
----Makefile(891B)

网友评论