多くのプロゼ民は普通、プレイヤーを追跡するAIを作る場合 [ちかくの(キャラ)のほうをむく]+[(3)すすむ] のプログラムを用いていると思います(そうだよね?)
でも、もしその追跡するキャラ(そらもん とする)とターゲット(ケーキとする)との間に、道を塞いでいる障害物があったとすれば、そらもんは前に進むことができません。
どうすれば、その障害物から回り込んでケーキを取ることができるのか…
こうしてアイデアを探しているうちに、私はパックマンの敵に使われている追跡アルゴリズムに出会いました。
しばらくの間はプログラミングへの知識が浅く、そのアルゴリズムを上手くプロゼミに落とし込めずにいたのですが、
今回!ようやくプロゼミで実現することができたので、皆さんにシェアしたいと思います!!
今回使用するのは全ての計算を行う「背景」と、その結果を反映する「マス」だけです
プログラム
背景のプログラム


マスのプログラム

驚いたか?マスは本当に結果を反映するだけなんだぜ
解説
まず、変数や配列の初期化やマップの情報を設定していく

次に、マスのキャラを呼び出してさっき設定したマップ情報を伝える
右にある紫ブロックを使って詳しいマスの情報を記録する

追跡AI(ここでは捕食者)のプログラム
簡単に説明すると、移動可能な上下左右の四方向をそれぞれ調べ移動可能な空のマスを選び、調べたマスの中から最もターゲット(ここでは餌)に近いマスを選び、移動する。
この一連の流れを餌に到達するまで繰り返す

もう少し分かりやすく説明
まず そらもんとケーキがあって、そらもんはケーキを取るために移動したいとする。
そらもんが移動できるのは自分から見て上下左右の四方向にあるマス

壁(黒いマス)は移動できないから、そらもんが移動できるのは 右,下の二方向になる。

右と下のマスからケーキまでの距離をそれぞれ求めた場合、最もケーキに近いのは右のマスになるので、そらもんは右に進む。
これをケーキが取れるまで繰り返す

アルゴリズムとしてはこんな感じ
ただ、それをプロゼミで再現するのが難しい…
プログラム
改造してシェアするのは構わないけど、何も手を付けずにこのままシェアはしないでね 約束だよ
さんぷる
まとめ
ちょっと説明が下手だったかな(;^ω^)
個人的にはプログラムを頭に入れるよりも、そのアルゴリズムを理解することに重きを置いてる勢なんで、ちょっと不完全燃焼。もし理解ができなかったら、『参考』にある動画を見てね
ちなみに、餌の位置を操作できるようにすれば鬼ごっこゲームだって作れる
時間があればそのプログラムも解説しようかな
作る予定
3Dのページもあるんですか!?
やあ😃
こんにちは!
こんにちは!
テスト