実際、「迷路」が正しい用語であるかどうかはわかりません。基本的に、ユーザーRoom
は4つのドア(N、S、E、およびW)を持つシングルで開始します。彼らは任意の方向に行くことができ、後続の各部屋には、他の部屋に行く1〜4個の出入口がある別の部屋が含まれます。
「迷路」はサイズに制限がなく、部屋を移動するにつれて大きくなると考えられています。Rooms
使用可能な数には制限がありますが、使用可能な数は動的であり、変更できます。
私の問題は、このタイプのパターンに最適なデータ構造がわからないことです
最初にRoom
オブジェクトの[X] [X]配列を使用することを考えましたが、物事はどの方向にも成長するはずであり、「訪問された」部屋のみを構築する必要があるため、それを避けたいと思います。
もう1つの考えは、各Room
クラスRoom
にN、S、E、Wの4つのリンクされたプロパティを含め、前のものRoom
にリンクすることですが、それに関する問題は、ユーザーがその部屋に入るかどうかを特定する方法がわかりません隣接する部屋は既に「構築済み」です
例えば、
--- --- ---------- | | | | 開始5 4 | | | | --- --- --- --- --- --- ---------- --- --- | | | | | | | 1 2 3 | | | | | | --- --- --- --- ----------
ユーザーが[スタート]> [1]> [2]> [3]> [4]> [5]から移動する場合、Room
#5はWが開始ルームを含み、Sはルーム#2であり、この場合は利用可能ではないこと、およびNは新規Room
または壁(なし)。
おそらく、アレイとリンクされた部屋を混在させる必要があるか、これを間違った方法で見ているだけかもしれません。
このタイプの「迷路」のデータ構造を構築するより良い方法はありますか?または、私は現在の思考プロセスで正しい軌道に乗っており、いくつかの情報が欠落していますか?
(興味がある場合は、プロジェクトはMunchkin Questに非常によく似たゲームです)