pygameを使って2次元の世界を動き回るシンプルなロボットのシミュレーションを作成しようとしています。世界には障害があります。ロボットには接触センサーしかありません。したがって、それが世界の境界またはその中の障害物のいずれかと衝突した場合にのみ、何かを感知することができます。したがって、ここでは衝突検出が最も重要です。
私には、WorldとRobotの2つの主要なクラスがあります。Worldクラスには、ワールドのジオメトリに関する情報が含まれ、障害物のリストも含まれています。Robotクラスには、ロボットのジオメトリと世界での現在の位置に関する情報が含まれています。ロボットは世界の一部であるため、ワールドクラスに含まれるべきだと私は信じています(しかし、私にはわかりません)。ロボットには、自分自身を表示して移動する方法があり、世界での位置が変わります。しかし、衝突検出には、境界や障害物のリストなど、世界に関する情報が必要です。
これで、WorldクラスのインスタンスをRobotクラスのメンバーにすることで、簡単なシミュレーションを実行できます。このようにして、私のロボットは世界に関する情報を取得し、衝突検出を楽しく行います。しかし、これは私を幸せにしません。
なぜなら、私は世界の他のロボットや、ロボットにさらしたくないものを世界に持ってシミュレーションを拡張したいと思うかもしれません(私はここでさまざまなAIアルゴリズムを実験しているだけです)。将来的には、ロボットが世界の知識を持たず、それを探索することで知識を得るようなものを試してみたいと思うかもしれません。
これがJavaの場合、Worldクラスが実装するインターフェイス(RobotWorldKnowledgeなど)を作成し、これをRobotクラスに渡します。このインターフェースは、ロボットが使用する世界についての選択的な知識を持っています。
Pythonでこれを行う方法がわかりません。「Pythonのインターフェース」をグーグルで試してみましたが、適切な例が見つかりませんでした。ほとんどの回答は、Pythonではインターフェースは必要ないことを示しています。
私が想定したことは間違っているかもしれません。私を助けてください。
前もって感謝します
シャヘンシャ