我正在实验轻量级的AI方法来开发棋盘游戏,并且最近将我的Backgammon AI从Android端口到了Java桌面应用。
该AI使用加权启发式评估而不是深度搜索:它使用像管子数量、锚点、暴露的污点、主板强度和赛跑位置等因素来评估棋盘状态。评估最高的移动获胜。

开发过程中遇到的几个有趣的挑战:

  • 调整权重会大大改变AI的性格 —— आक्रामक vs. 防御。
  • 使用Swing可视化评估帮助我找到了评分逻辑中的错误。
  • 从Android端口到桌面应用强迫我重新思考如何结构评估管道。

我分享这个是因为启发式驱动的游戏AI经常被忽视与基于搜索的方法相比,但它可以在权重设置正确时令人惊讶地强大。

如果有人想看实现或批评评估函数,请访问以下仓库:
github.com/nuerofoundry/TavliDesktopAI-HeuristicSeed

我很高兴讨论设计或调节过程。

https://preview.redd.it/khy2f6ur0e1h1.png?width=1087&format=png&auto=webp&s=dbfd0c2e3fa12aa94eb65a3e7887407e53736425

https://preview.redd.it/amjtp6ur0e1h1.png?width=1279&format=png&auto=webp&s=0667a69a228eca76cbb97ebfa0599fb6dea1f1e0

https://preview.redd.it/6w2hd6ur0e1h1.png?width=1245&format=png&auto=webp&s=00b1db38f0e5e347b77b863d19ab09f23079b2ac