fix syntax
This commit is contained in:
@@ -56,9 +56,12 @@ var shapeKeys = array(SHAPES)
|
||||
// Initialize board with empty (0)
|
||||
function initBoard() {
|
||||
board = []
|
||||
for (var r=0; r<ROWS; r++) {
|
||||
var row = []
|
||||
for (var c=0; c<COLS; c++) push(row, 0)
|
||||
var r = 0;
|
||||
var row = null;
|
||||
var c = 0;
|
||||
for (r=0; r<ROWS; r++) {
|
||||
row = []
|
||||
for (c=0; c<COLS; c++) push(row, 0)
|
||||
push(board, row)
|
||||
}
|
||||
}
|
||||
@@ -66,7 +69,7 @@ initBoard()
|
||||
|
||||
function randomShape() {
|
||||
var key = shapeKeys[floor(random.random()*length(shapeKeys))]
|
||||
// Make a copy of the shape’s blocks
|
||||
// Make a copy of the shape's blocks
|
||||
return {
|
||||
type: key,
|
||||
color: SHAPES[key].color,
|
||||
@@ -84,9 +87,12 @@ function spawnPiece() {
|
||||
}
|
||||
|
||||
function collides(px, py, blocks) {
|
||||
for (var i=0; i<length(blocks); i++) {
|
||||
var x = px + blocks[i][0]
|
||||
var y = py + blocks[i][1]
|
||||
var i = 0;
|
||||
var x = 0;
|
||||
var y = 0;
|
||||
for (i=0; i<length(blocks); i++) {
|
||||
x = px + blocks[i][0]
|
||||
y = py + blocks[i][1]
|
||||
if (x<0 || x>=COLS || y<0 || y>=ROWS) return true
|
||||
if (y>=0 && board[y][x]) return true
|
||||
}
|
||||
@@ -95,9 +101,12 @@ function collides(px, py, blocks) {
|
||||
|
||||
// Lock piece into board
|
||||
function lockPiece() {
|
||||
for (var i=0; i<length(piece.blocks); i++) {
|
||||
var x = pieceX + piece.blocks[i][0]
|
||||
var y = pieceY + piece.blocks[i][1]
|
||||
var i = 0;
|
||||
var x = 0;
|
||||
var y = 0;
|
||||
for (i=0; i<length(piece.blocks); i++) {
|
||||
x = pieceX + piece.blocks[i][0]
|
||||
y = pieceY + piece.blocks[i][1]
|
||||
if (y>=0) board[y][x] = piece.color
|
||||
}
|
||||
}
|
||||
@@ -105,9 +114,12 @@ function lockPiece() {
|
||||
// Rotate 90° clockwise
|
||||
function rotate(blocks) {
|
||||
// (x,y) => (y,-x)
|
||||
for (var i=0; i<length(blocks); i++) {
|
||||
var x = blocks[i][0]
|
||||
var y = blocks[i][1]
|
||||
var i = 0;
|
||||
var x = 0;
|
||||
var y = 0;
|
||||
for (i=0; i<length(blocks); i++) {
|
||||
x = blocks[i][0]
|
||||
y = blocks[i][1]
|
||||
blocks[i][0] = y
|
||||
blocks[i][1] = -x
|
||||
}
|
||||
@@ -115,14 +127,17 @@ function rotate(blocks) {
|
||||
|
||||
function clearLines() {
|
||||
var lines = 0
|
||||
for (var r=ROWS-1; r>=0;) {
|
||||
var r = ROWS-1;
|
||||
var newRow = null;
|
||||
var c = 0;
|
||||
for (r=ROWS-1; r>=0;) {
|
||||
if (every(board[r], cell => cell)) {
|
||||
lines++
|
||||
// remove row
|
||||
board = array(array(board, 0, r), array(board, r+1))
|
||||
// add empty row on top
|
||||
var newRow = []
|
||||
for (var c=0; c<COLS; c++) push(newRow, 0)
|
||||
newRow = []
|
||||
for (c=0; c<COLS; c++) push(newRow, 0)
|
||||
board.unshift(newRow)
|
||||
} else {
|
||||
r--
|
||||
@@ -195,10 +210,11 @@ this.update = function(dt) {
|
||||
// ======= End Horizontal Movement Gate =======
|
||||
|
||||
// Rotate with W (once per press, no spinning)
|
||||
var test = null;
|
||||
if (input.keyboard.down('w')) {
|
||||
if (!rotateHeld) {
|
||||
rotateHeld = true
|
||||
var test = array(piece.blocks, b => [b[0], b[1]])
|
||||
test = array(piece.blocks, b => [b[0], b[1]])
|
||||
rotate(test)
|
||||
if (!collides(pieceX, pieceY, test)) piece.blocks = test
|
||||
}
|
||||
@@ -232,9 +248,19 @@ this.hud = function() {
|
||||
draw.rectangle({x:0, y:0, width:config.width, height:config.height}, [0,0,0,1])
|
||||
|
||||
// Draw board
|
||||
for (var r=0; r<ROWS; r++) {
|
||||
for (var c=0; c<COLS; c++) {
|
||||
var cell = board[r][c]
|
||||
var r = 0;
|
||||
var c = 0;
|
||||
var cell = null;
|
||||
var i = 0;
|
||||
var x = 0;
|
||||
var y = 0;
|
||||
var nx = 0;
|
||||
var ny = 0;
|
||||
var dx = 0;
|
||||
var dy = 0;
|
||||
for (r=0; r<ROWS; r++) {
|
||||
for (c=0; c<COLS; c++) {
|
||||
cell = board[r][c]
|
||||
if (!cell) continue
|
||||
draw.rectangle({x:c*TILE, y:(ROWS-1-r)*TILE, width:TILE, height:TILE}, cell)
|
||||
}
|
||||
@@ -242,9 +268,9 @@ this.hud = function() {
|
||||
|
||||
// Draw falling piece
|
||||
if (!gameOver && piece) {
|
||||
for (var i=0; i<length(piece.blocks); i++) {
|
||||
var x = pieceX + piece.blocks[i][0]
|
||||
var y = pieceY + piece.blocks[i][1]
|
||||
for (i=0; i<length(piece.blocks); i++) {
|
||||
x = pieceX + piece.blocks[i][0]
|
||||
y = pieceY + piece.blocks[i][1]
|
||||
draw.rectangle({x:x*TILE, y:(ROWS-1-y)*TILE, width:TILE, height:TILE}, piece.color)
|
||||
}
|
||||
}
|
||||
@@ -252,11 +278,11 @@ this.hud = function() {
|
||||
// Next piece window
|
||||
draw.text("Next", {x:70, y:5, width:50, height:10}, null, 0, color.white)
|
||||
if (nextPiece) {
|
||||
for (var i=0; i<length(nextPiece.blocks); i++) {
|
||||
var nx = nextPiece.blocks[i][0]
|
||||
var ny = nextPiece.blocks[i][1]
|
||||
var dx = 12 + nx
|
||||
var dy = 16 - ny
|
||||
for (i=0; i<length(nextPiece.blocks); i++) {
|
||||
nx = nextPiece.blocks[i][0]
|
||||
ny = nextPiece.blocks[i][1]
|
||||
dx = 12 + nx
|
||||
dy = 16 - ny
|
||||
draw.rectangle({x:dx*TILE, y:(ROWS-1-dy)*TILE, width:TILE, height:TILE}, nextPiece.color)
|
||||
}
|
||||
}
|
||||
@@ -269,4 +295,3 @@ this.hud = function() {
|
||||
draw.text("GAME OVER", {x:10, y:config.height*0.5-5, width:config.width-20, height:20}, null, 0, color.red)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user