Skip to content
On this page

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

实际上俄罗斯方块的旋转还需要处理"踢墙"问题,上面只是基础版的旋转实现。