【问题标题】:How to store the numbers for the 2048 game如何存储 2048 游戏的数字
【发布时间】:2020-08-20 12:18:29
【问题描述】:

我一直在尝试实现游戏 2048。

我可以在网格的随机位置添加数字,也可以将它们滑到一边,就像 console.log 向我展示的那样。

但不知何故,我无法保持幻灯片的效果。每当我再次调用key 时,这些行就像没有之前幻灯片的效果。

function slide(row) {
  arr = row.filter(e => e);
  let missing = 4 - arr.length;
  let zeros = Array(missing).fill(0);
  arr = arr.concat(zeros);
  console.log(arr);
  return arr;
}

function key() {
  for (let i = 0; i < 4; i++) {
    slide(grid[i]);
  }
  addNumber();
}

【问题讨论】:

  • 欢迎来到stackoverflow。对不起,但老实说,我不知道你的问题是想问什么。你的文本很少有任何意义,你的代码根本没有帮助。请阅读help centerHow to Ask 部分,然后编辑您的问题
  • 还有其他代码可以分享吗?
  • 是的,我是新手,正在尝试使用 StackOverflow。谢谢你的建议。

标签: javascript arrays 2048


【解决方案1】:

问题在于您没有修改函数接收到的row 作为参数。相反,您创建一个新数组,然后将其返回。但随后调用者不处理返回值。

代替:

for (let i = 0; i < 4; i++) {
    slide(grid[i])
}

做:

for (let i = 0; i < 4; i++) {
    grid[i] = slide(grid[i])
}

现在您的网格实际上将与 slide 函数的功能保持同步。

【讨论】:

    猜你喜欢
    • 2020-02-12
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 2014-07-23
    相关资源
    最近更新 更多