麻烦大佬帮我看看补齐一下这个代码使他能输出2048
发代码最好是用<代码段>的文本形式,你发图片我们没办法调试。
<!DOCTYPE html>
<html onkeydown="kd()">
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
td {
width: 80px;
height: 80px;
background-color: antiquewhite;
font-size: 32px;
text-align: center;
}
#container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
</style>
</head>
<body onload="newGame">
<div id="container">
<table id="tb"></table>
</div>
<script type="text/javascript">
var a = [
[2, 0, 8, 2],
[4, 0, 2, 0],
[2, 2, 4, 4],
[2, 0, 2, 0]
]
function newGame() {
// 把数组清空
var a = [];
// 在随机空格中添加2个随机数字(2或4)
// 输出数组
for (i = 0; i < a.length; i++)
for (j = 0; j < a[i].length; j++);
/* for (let w in a)
for (let w2 in a) a[w][w2] = 0; *///重置数组,令所有的成员都为0
//for(int i = 0; i < a.length; i++){}
// var a = []// 把数组清空
newNum();
newNum();
out();
}
newGame();
function newNum(){
var i, j;
do{
i = Math.floor(Math.random() * 4);
j = Math.floor(Math.random() * 4);
} while (a[i][j] != 0)
a[i][j] = Math.random() > 0.5 ? 2 : 4;
}
function out() {
var formBody = `<tr>\n`
for (let w in a) {
for (let w2 in a) {
formBody += `<td>${a[w][w2]}</td>\n`
}
formBody += `</tr>`
}
document.getElementById('tb').innerHTML = formBody;
}
function mLeft() {//37
for (k = 0; k < a.length; k++) {
i = 1
for (i = 1; i < a[k].length; i++)
if (a[k][i] > 0) {
if (a[k][j] == 0) {
a[k][j] = a[k][i]
a[k][i] = 0
} else
if (a[k][i] == a[k][j]) {
a[k][j] *= 2
a[k][i] = 0
j++
} else {
j++
if (j < i) {
a[k][j] = a[k][i]
a[k][i] = 0
}
}
}
}
document.write('a')
} //左滑
function mUp() {//38
for(x = 0; x < a.length; x++) {
i = 1
for (i = 1; i < a[x].length; i++)
if(a[x][i] > 0) {
if (a[x][j] == 0) {
a[x][j] = a[x][i]
a[x][i] = 0
} else
if(a[x][i] == a[x][j]){
a[x][j] *= 2
a[x][i] =0
j++
}else {
j++
if (j < i) {
a[x][j] = a[x][i]
a[x][i] = 0
}
}
}
}
document.write('b')
} //上滑
function mRight() {//39
for (k = 0; k < a.length-1; k--) {
i=2
for(i = 2; i < a[k].length; i--)
if(a[k][i]>0) {
a[k][j] = a[k][i]
a[k][i] = 0
}else
if(a[k][i] == a[k][j]){
a[k][j] *= 2
a[k][i] =0
j--
} else {
j--
if (j > i) {
a[k][j] = a[k][i]
a[k][i] = 0
}
}
}
document.write('c')
} //右滑
function mDown() {//40
for(x = 0; x < a.length-1; x--) {
i = 2
for(i = 2; i < a[x].length; i--)
if(a[x][i] > 0) {
if(a[x][j] == 0) {
a[x][j] = a[x][i]
a[x][i] = 0
} else
if(a[x][i] == a[x][j]){
a[x][j] *= 2
a[x][i] =0
j--
}else{
j--
if(j > i) {
a[x][j] = a[x][i]
a[x][i] = 0
}
}
}
}
document.write('d')
} //下滑
function kd() {
// tbl.rows[0].cells[0].innerHTML = event.keyCode
switch(event.keyCode){
case 37:
mLeft();
break;
case 38:
mUp();
break;
case 39:
mRight();
break;
case 40:
mDown();
break;
}
}
</script>
</body>
</html>