免責事項:これは恐ろしいMinecraftスタイルの質問の1つですが、データ構造とアルゴリズムの質問のほうが多いと思います
私は3Dデータ構造に本当に慣れていないので、3Dブロック構造を保存および照合するための最良の方法を考えています。
現在、プレイヤーは任意のスペースにブロックを配置でき、これらのブロックが事前定義された構造と一致すると、イベントが発生します。私が現在行っている方法は、プレーヤーがブロックを配置するときに、ゲームが再帰的に各隣接ブロックをチェックして、x、y、z座標が最も低いブロックを見つけ、そのブロックをルートブロックにします。次に、ルートブロックに基づいて残りのブロックをチェックし、特定のテンプレートと一致することを確認します。問題は、テンプレートが複雑になるにつれて、私のコード(非常に非効率的)も複雑になることです。
これを行う最善の方法は、構造を定義するあるタイプのマトリックスを保存し、プレーヤーがブロックを配置するたびにマトリックスと照合することです。このタイプの問題に一致するデータ構造/アルゴリズムはすでにありますか?