Appearance
Step5:旋转方块
旋转方块其实主要就是处理旋转数组的问题,可以参考一个经典的算法问题,参见:旋转图像。
点击查看样例代码
js
function roate() {
clearBlock()
roateBlock()
addBlock()
}
function roateBlock() {
const newShape = []
const rows = block.value.length
const cols = block.value[0].length
for (let i = 0; i < cols; i++) {
const newRow = []
for (let j = rows - 1; j >= 0; j--) {
newRow.push(block.value[j][i])
}
newShape.push(newRow)
}
block.value = newShape
}
TIP
实际上俄罗斯方块的旋转还需要处理"踢墙"问题,上面只是基础版的旋转实现。