我有问题将 AI 写入游戏(如 tron lightcycles)。我使用 ncurses 在 C 上编写所有图形和动作。现在我需要在序言上写下机器人的 ai。我正在使用 swi prolog。
我保存当前游戏场(所有矩阵)、当前人类位置和当前机器人位置(如矩阵单元 i、j)。它们像谓词一样保存在 c 的 .pl 文件中。
我的游戏字段是一个包含 1 和 0(1 - 已访问,0 - 未访问)的矩阵。像这样:
human_current_position(0,1).
bot_current_position(1,2).
matrix([[1,1,0,0],
[1,1,1,0],
[0,0,0,0],
[0,0,0,0]]).
然后我需要分析这个矩阵,如:
analyze(matrix).
所以 prolog 中的分析函数将返回一些方向(左、下、上或右)保存到文件中,我的 c 程序读取这个文件并移动机器人。
所以我有一个问题 - 我如何在 Prolog 中分析这个矩阵。我读了一些关于 min-max 算法的东西,但我无法在 Prolog 中意识到这一点。任何人都可以帮助或说明如何使用我的矩阵和 Prolog 中的当前位置来制作最小最大算法的工作吗?