本学期在学 CITS3001 Algorithms, Agents and Artificial Intelligence 这门课,主要围绕人工智能 Agent 展开。博弈是人工智能科目内非常重要的一部分,很多 Labsheet 甚至最重要的 Project 都是制作一个真实游戏的 AI 玩家。一个占比 4% 分数的项目就是需要编写一个 Mancala 游戏的玩家。
和朋友玩了一下午游戏,加上网络上的资料搜寻, 对本游戏的策略进行简单的分析和总结,以便于更好的实现 AI 功能。本游戏和国际象棋比起来复杂性降低许多,每个玩家可以控制至多六个格子,故每回合可行步数均小于等于 6,所以对于实现本 AI 的一个想法是计算对比 6 种前进方案,并选择最优移动。每次计算移动收益值时应该注意的是自己的得分、以及对对方的影响(如有无限制对方的得分、降低对方吃子的数量、同时应该通过 Max Min 算法来预测对方的行动、来降低下个回合自己的损失)。