public void Update() { if (piece.Move(Direction.Down)) { this.DeletedRowNum = 0; return; } int deletedRowNum; field.Update(out deletedRowNum); this.DeletedRowNum = deletedRowNum; if (piece.Y <= 0) { this.IsGameOver = true; return; } // Get the next piece var nextPiece = pieceQueue.Dequeue(); nextField.RemovePiece(nextPiece); nextPiece.Field = this.field; nextPiece.X = this.field.COLS / 2; nextPiece.Y = 0; this.piece = nextPiece; nextPiece = createPiece(nextField, nextField.COLS / 2, nextField.ROWS / 2); pieceQueue.Enqueue(nextPiece); nextField.Draw(); }
public bool Rotate(RtDirection direction) { Field.RemovePiece(this); bool rotated = false; if (canRotate(direction)) { Rotator.Rotate(Shape, direction); rotated = true; } Field.PutPiece(this); Field.Draw(); return(rotated); }
public bool Move(Direction direction) { Field.RemovePiece(this); bool moved = false; if (canMove(direction)) { Mover.Move(ref pos, direction); moved = true; } Field.PutPiece(this); Field.Draw(); return(moved); }