私は、プレイヤーが入れた石の位置を 2 次元のゲーム フィールドに格納するゲーム (「Qwirkle」と呼ばれています) を作成しようとしていました。最初のプレーヤーは石をどこにでも置き、他のプレーヤーは任意の方向 (左/右/上下) から石に接続できます。ゲームフィールド自体は、ゲームのアイデアを台無しにする固定サイズに制限されていません。ただし、石の数は、プレーヤーが開始時に定義できる値に制限されています。
ゲーム ロジックのため、インデックスを使用して石を for ループする必要があります。ただし、プレーヤーはどの側からでも石を追加できるため、任意の方向 (たとえば、負および正のインデックス方向) に拡張できるリストが必要です。
一度に複数の石をチェックする必要があるため、パフォーマンスは重要ではありません。
最善の方法は、_stones[-3,5] のような石にアクセスして、もちろん -3, 5 の位置にある石にアクセスすることです。
これには、任意の側からプッシュおよびポップできるスタック (PushBack / PushFront など) が役立つと思いましたが、C# でそれを実現する方法がよくわかりません。
私が考えているような事前実装されたリスト/スタックはありますか、それとも私のアプローチは完全に奇妙ですか?