我打算写一个游戏(如果你听说过它,它被称为“Qwirkle”),其中一个二维游戏场存储玩家投入的石头的位置。第一个玩家将一块石头放在任何地方,其他玩家可以从任何一侧(左/右/顶部和底部)连接到它。游戏场本身并不局限于会破坏游戏理念的固定大小。但是,棋子的数量仅限于玩家在开始时可以定义的值。
由于游戏逻辑,我需要用索引遍历石头。但是,由于玩家可以从任何一侧添加石头,我需要一个可以扩展到任何方向的列表(例如,到负和正索引方向)。
性能并不是不重要的,因为我需要一次检查几块石头。
最好的办法是访问像 _stones[-3,5] 这样的石头来访问位置 -3、5 的石头,当然。
我认为可以从任何一侧推送和弹出的堆栈(如 PushBack / PushFront)对此很有用,但我不太确定如何在 C# 中实现这一点。
是否有像我正在考虑的那样预先实现的列表/堆栈,或者我的方法完全奇怪?