質問: 1) { return up; } else { return stay; } game.cpp http://codepad.org/c2opgsux red ai.cpp http://codepad.org/zlwvnptx
回答: > 壁で進めなくなるので敵を避けつつエサを食べれるように左、右に曲がるようにとか、プログラム打ちたいです では、そのようにプログラムを打ってください。 プログラムがわからないなら、まずは、日本語で書いてみてください。 > 壁で進めなくなる というのは、 「壁があるのに、そちらへ進もうとする」 から進めなんですよね? それなら (1)[進む方向]を決める (2) [進む方向]が壁ではないなら、[進む方向]へ進む そうで無いなら、[進む方向]を別の方法で決める みたいな処理をすればいいのです。 > 敵を避けつつ とありますが、今は「敵が来たら上」です。 if (abs(p.x - e.x) + abs(p.y - e.y) <= 2) { /* 敵との距離が近い場合 */ return up; /* とにかく上 */ }; ならば、 if (abs(p.x - e.x) + abs(p.y - e.y) <= 2) { /* 敵との距離が近い場合 */ 逃げられる方向を探してそっちへ }; とすれば、とりあえずは壁で進めなくなることがなくなるはずです。