タグ付けされた質問 「graphs」

3
グラフのエッジの数を減らし、接続を維持する
私はランダムに生成されたダンジョンでゲームをデザインしています。これを、ノードが部屋であり、エッジがドアまたは廊下である、接続された無向グラフとして表示したいと思います。次に、ダンジョンの入口として「サイド」ノードを選択し、この入口と他のすべてのノードとの間の距離を計算し、最も遠いノードの1つをダンジョンの「ゴール」(宝物、ボス、プリンセスなど)。 最終的なダンジョンの地形を生成する2つの方法を見ました。 最初にランダムグラフを生成し、エッジの接続を尊重して、ランダムな場所にある部屋で2Dワールドを塗りつぶします。部屋の生成が不可能な場所に部屋を適合させようと「ロック」される可能性があるため、これは時々困難になると考えました。 最初の部屋を生成し、それらが収まる場所にランダムに配置してから、結果をノードとエッジにマッピングします。私はこれを試すことにしました。 私の考えは次のとおりです。 最初に、ダンジョン全体を含む大きな部屋を生成します。 大きな部屋の内側のランダムな場所に壁を置き、大きな部屋を異なる面積の2つの小さな部屋に分割します。 次に、部屋が小さすぎるか、部屋の総数が最大(またはその他の条件)に達するまで、各部屋を2つに分割し続けます。新しい部屋はそれぞれノードです。 終了したら、各部屋をチェックして、隣接する他のすべての部屋を見つけ、2つのノードをエッジで接続されているものとしてマークします。 そうすることで、すべての部屋が2Dの世界で可能な場所に配置され、接続されたグラフによって正しくマッピングされるようにします。 私の問題は、部屋をつなぐドアと廊下が多すぎることです。 したがって、接続された無向グラフのエッジの数を減らし、最終的には接続されたまま(すべてのノードが到達可能なまま)のアルゴリズムが必要です。

3
回路または電源システム(Minecraftのレッドストーンなど)を実装する方法
Minecraftにレッドストーンシステムのような電源システムを実装したい。 n個の電源とm個のケーブルがあります。電源またはケーブルを外すと、回路がオフになります。 サークルを回避するにはどうすればよいですか?ステータスが「オン」の各ケーブルが近くのケーブルに電力を供給している場合、電源が含まれていない無限の円を作成できます(画像を参照)。プラスのサイトはT = mで実行されるということです すべての電源から開始してグラフを介してパワーバーストを送信でき、各更新コールですべてのケーブルをオフにしました。問題は、T = n * mで実行されることです。 ベストプラクティスはありますか?Minecraftではレッドストーンシステムが非常に遅いため、見落としがあったと思います。 編集:システムは、距離ベースの減衰なしで動作するはずです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.