AIをゲームに書き込むのに問題があります(トロンライトサイクルなど)。ncurses を使用して、すべてのグラフィックと動きを C で記述します。次に、プロローグにボットの AI を記述する必要があります。私はswiプロローグを使用しています。
現在のゲーム フィールド (すべてのマトリックス)、現在の人間の位置、および現在のボットの位置 (マトリックス セル 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).
したがって、プロローグの分析機能は、ファイルに保存された方向(左、下、上、または右)を返し、私のCプログラムはこのファイルを読み取り、ボットを移動します。
だから私は質問があります-Prologでこのマトリックスをどのように分析できますか。min-max アルゴリズムについて読んだことがありますが、Prolog ではこれを実現できません。プロローグの行列と現在の位置を使用して、最小最大アルゴリズムを機能させる方法を誰かが助けたり、指示したりできますか?