如何解决如何存储2048游戏的数字
我一直在尝试实现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();
}
解决方法
问题是您没有修改函数作为参数接收的row
。而是创建一个新数组,然后返回。但是随后,调用者将不处理返回值。
代替:
for (let i = 0; i < 4; i++) {
slide(grid[i])
}
做:
for (let i = 0; i < 4; i++) {
grid[i] = slide(grid[i])
}
现在,您的网格实际上将与slide
函数所做的保持同步。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。