【发布时间】:2021-02-13 01:08:46
【问题描述】:
我有一个 2048 类型的游戏,其中游戏板网格由 4 个其他列表(每个列表包含 4 个 Tiles)组成。
每次移动时,newGameboardGrid 都会保存在另一个列表中(这样当玩家想要撤消移动时可以调用 removeLast)。
当玩家滑动时,我需要将 newGameboardGrid 网格与前一个网格进行比较,以查看是否发生了任何实际移动或图块值是否仍然相同(如果玩家向没有移动的方向滑动就会发生这种情况是可能的)。
我试过这段代码:
if (newGameboardGrid == listOfGameboardGrids.last) {
// do something
}
它几乎可以工作,因为它 比较新动作的 > 与上一动作的
>,但问题是它永远不会导致两个
> 相等,即使所有 tile 值都相同。我相信这是因为它在比较哈希码和/或其他东西。
Tile 类中有很多东西,但我想比较的是名为“value”的 int。是否可以只比较这两个 > 的“值”变量?
提前感谢您的帮助! (如果我的任何条款不准确,请致歉。)
【问题讨论】:
-
您是否至少对
Tile类进行了某种比较?
标签: dart