2048 游戏的正确图块移动
在 2048 游戏中,图块按照玩家输入的方向移动。这对正确实现图块移动提出了挑战。
合并问题
当前的实现尝试将图块从左上角移动到右下角,无论玩家的移动方向。然而,在 2048 年,图块仅在向同一方向移动时才会合并。
考虑以下场景:
[2][2][4][0] [0][0][2][2] [0][0][4][0] [0][0][0][0]
如果玩家按下,代码将合并 2 和 4在底行,结果是:
[0][0][0][4] [0][0][0][0] [0][0][4][0] [0][0][0][0]
但是,如果我们以相反的方向(从下到上)合并:
[0][0][0][0] [0][0][0][0] [0][4][4][0] [0][0][0][0]
我们正确地获得了所需的棋盘
解决方案
要解决此问题,请沿玩家移动的相反方向扫描图块。这可确保图块仅在所需方向合并。
代码优化
提供的代码包含每个移动方向的重复代码。这可以通过使用单个循环迭代所有图块和 switch 语句来根据输入方向确定适当的操作来优化。
以上是2048游戏中如何保证棋子的正确移动?的详细内容。更多信息请关注PHP中文网其他相关文章!