小さなタイル/ブロックで構成されるグリッド (4x6) があります。誰かがグリッド内を移動したとき、移動先を正確に追跡する必要があります。したがって、タイルに番号を付けると
1- 2- 3- 4- 5- 6
7- 8- 9-10-11-12
13-14-15-16-17-18
今、私が 10 なら、4,9,11,0r 16 に移動できます。
これをどのように追跡すればよいですか?この情報を保存するためにどのデータ構造を使用できますか?
小さなタイル/ブロックで構成されるグリッド (4x6) があります。誰かがグリッド内を移動したとき、移動先を正確に追跡する必要があります。したがって、タイルに番号を付けると
1- 2- 3- 4- 5- 6
7- 8- 9-10-11-12
13-14-15-16-17-18
今、私が 10 なら、4,9,11,0r 16 に移動できます。
これをどのように追跡すればよいですか?この情報を保存するためにどのデータ構造を使用できますか?
3 オプション。
それを行う OOP の方法:
内部に 2D 配列を含むグリッド クラスを作成します。surrounding(int x, int y)
周囲のタイルを返すメソッドなどを作成するために使用できます。
2D 配列。
OOP の方法に似ていますが、少し面倒です。(x-1, y)、(x + 1, y)、(x, y + 1)、(x, y - 1) から周囲のタイルを取得します。
1D 配列。
あなたの例のように。これは非常に使いにくいので、お勧めしません。そのように使用したい場合は、グリッドの「幅」用に別の int 変数が必要になる場合があります。提供された例では、6 だったので、周囲のタイルは次のようになります。
(i - 6)、(i - 1)、(i + 1)、(i + 6)。
2D 配列またはグリッド オプションのいずれかを強くお勧めします。私が好むグリッドは、物事を可能な限り派手なものにすることに興味がある場合に非常に優れています。