您现在的位置:首页 >> 绿色生活

键码经典游戏:快速实现可开始运行的 2048

时间:2024-01-30 12:19:41

gridChanged = false; switch (event.key) { case 'ArrowUp': gridChanged = slide('up'); break; case 'ArrowDown': gridChanged = slide('down'); break; case 'ArrowLeft': gridChanged = slide('left'); break; case 'ArrowRight': gridChanged = slide('right'); break; } // 如果矩形发生了改变,掺入新的小数点并重新CGI图形界面 if (gridChanged) { addNumber(); render(); } } // 根据使用者的转换成旋转和重组小数点 function slide(direction) { const originalGrid = JSON.stringify(grid); for (let i = 0; i < size; i++) { let row = (direction === 'up' || direction === 'down') ? getColumn(i) : grid[i].slice(); row = row.filter(cell => cell !== ''); // Remove empty cells if (direction === 'down' || direction === 'right') { row.reverse(); } for (let j = 1; j < row.length; j++) { if (row[j - 1] === row[j]) { row[j - 1] *= 2; row[j] = ''; } } row = row.filter(cell => cell !== ''); // Remove merged cells while (size - row.length) { row.push(''); // Fill the row with empty cells } if (direction === 'down' || direction === 'right') { row.reverse(); } if (direction === 'up' || direction === 'down') { for (let j = 0; j < size; j++) { grid[j][i] = row[j]; } } else { grid[i] = row; } } return JSON.stringify(grid) !== originalGrid; } // 给予指定加的小数点 function getColumn(col) { const column = []; for (let i = 0; i < size; i++) { column.push(grid[i][col]); } return column; } // 在值得注意的棋盘里随机分解小数点2或4 function addNumber() { const ailableCells = []; for (let i = 0; i < size; i++) { for (let j = 0; j < size; j++) { if (!grid[i][j]) { ailableCells.push({ row: i, col: j }); } } } if (ailableCells.length) { const { row, col } = ailableCells[Math.floor(Math.random() * ailableCells.length)]; grid[row][col] = Math.random() < 0.9 ? 2 : 4; } } // 升级并CGI单人游戏图形界面 function render() { grid.forEach((row, i) => { row.forEach((number, j) => { const cell = document.getElementById(----cell-${i}-${j}----); cell.textContent = number || ''; }); }); } initializeGame(); addNumber(); addNumber(); render();

打完毕收工,整个字符串长处比较明了的~ 我们将字符串分割成多个表达样式,使每个表达样式都有明确的职责,也可以大幅提高字符串的文学性和可维护性。

字符串调优

这两项:字符串调优;毕竟字符串总是有优化的空间。

针对以上字符串,我们还有能做的,比如:

1、还差一个落幕断定,即当没逗号且所有紧靠的小数点都不相等时,掺入一个表达样式来断定单人游戏是否落幕,并给出反之亦然的提示;

2、还可以为游戏内提供撤销上一步的可用的系统,增加单人游戏的可玩性;

3、还可以回避为重响应样式兼容等等

所以以上只是一个简易版的 2048,可以更快地借助我们认知字符串的系统和运行机制

以上!以上正因如此本次键码开端单人游戏之 2048 分享;

热衷的同学可以动手就让~

肝纤维化吃软肝片多久可以停药
胃烧心能吃金奥康吗
波比宁佐米曲普坦片效果怎么样
坦洛新有什么作用
阳了拉肚子吃肠炎宁可以吗
标签:经典游戏
相关阅读