ポケモンの氷摺動パズルと似たパズルゲームを作成する目的で、有向グラフをランダムに生成しようとしています。グリッド上で無作為に指向グラフを生成する
これは私がランダムに生成できるようにするものであり、本質的に:http://bulbanews.bulbagarden.net/wiki/Crunching_the_numbers:_Graph_theory
Iは、x及びy次元でグラフのサイズを制限できるようにする必要があります。リンクの例では、8x4グリッドに制限されています。
ランダムなグラフを生成するのではなく、ノードの反対側に何か(岩のような)が必要なので、グラフをランダムに生成して2次元空間に正しくマップすることができますスライドを止めたときに視覚的に意味をなさせるようにします。この問題は、岩石が2つの他のノードの間の経路にあるか、場合によっては別のノード自体に到達することがあり、グラフ全体が壊れてしまうことがあります。
私が知っている少数の人々との問題を話し合った後、我々は解決策につながるかもしれない2つの結論に達しました。グラフを作成するときにグリッドに障害物を含める。完全に塗りつぶされたグリッドを使い、無作為なパスを描き、そのパスを動作させるブロックを削除します。ただし、削除するパスを見つけ出すことで、誤って短いパスを追加することはありません。ダイナミックプログラミングアルゴリズムは有益かもしれないと考えていましたが、私たちの誰もがダイナミックプログラミングアルゴリズムを作成することができませんでした。この問題が公式に呼び出されたことについてのアイデアやリファレンス(公式のグラフ問題の場合)が最も役立ちます。
プログラマーズSEサイトには問題はありませんが、おそらくもっと適切です。 私の直感は、グラフを生成しようとするのではなく、障害物をランダムに配置してからグラフを引き出すことです。 – voidengine
私もそれを試みました。そして、私はそれを良いものを得るために何度もやり直す必要があることに終わります。良いことは、最初から最後まで解決するステップ数で定義されます。そして、それは本質的にソリューションを強制するだけのものです。私はProgrammers SEでもおかげさまします。ありがとうございます。 – Talon876