예제 #1
0
        public void BoardDrawing()
        {
            var game = new TetrisGame(new Vec2i(10, 20), new PlayerScoreFile("helo.txt"));

            var board = new TetrisBoard(new Vec2i(6, 12));

            board.Draw(new Tetromino(TetrisCell.L, new int[, ] {
                { 0, 0, 1 },
                { 1, 1, 1 },
                { 0, 0, 0 },
            }), new Vec2i(2, 5));
            board.Draw(new Tetromino(TetrisCell.T, new int[, ] {
                { 0, 1, 0 },
                { 1, 1, 1 },
                { 0, 0, 0 },
            }), new Vec2i(1, 4));

            // I'm sorry
            var expected_board = new TetrisCell[12][] {
                new TetrisCell[6] {
                    0, 0, 0, 0, 0, 0
                },
                new TetrisCell[6] {
                    0, 0, 0, 0, 0, 0
                },
                new TetrisCell[6] {
                    0, 0, 0, 0, 0, 0
                },
                new TetrisCell[6] {
                    0, 0, 0, 0, 0, 0
                },
                new TetrisCell[6] {
                    0, 0, TetrisCell.T, 0, 0, 0
                },
                new TetrisCell[6] {
                    0, TetrisCell.T, TetrisCell.T, TetrisCell.T, TetrisCell.L, 0
                },
                new TetrisCell[6] {
                    0, 0, TetrisCell.L, TetrisCell.L, TetrisCell.L, 0
                },
                new TetrisCell[6] {
                    0, 0, 0, 0, 0, 0
                },
                new TetrisCell[6] {
                    0, 0, 0, 0, 0, 0
                },
                new TetrisCell[6] {
                    0, 0, 0, 0, 0, 0
                },
                new TetrisCell[6] {
                    0, 0, 0, 0, 0, 0
                },
                new TetrisCell[6] {
                    0, 0, 0, 0, 0, 0
                },
            };

            Assert.Equal(expected_board, board.Cells);
        }
예제 #2
0
    void OnGUI()
    {
        if (board != null)
        {
            Event e = Event.current;

            switch (e.type)
            {
            case EventType.keyDown:
                if ((e.keyCode == KeyCode.A || e.keyCode == KeyCode.LeftArrow) && areKeysUp)
                {
                    board.MoveShapeLeft();
                    areKeysUp = false;
                }
                else if ((e.keyCode == KeyCode.D || e.keyCode == KeyCode.RightArrow) && areKeysUp)
                {
                    board.MoveShapeRight();
                    areKeysUp = false;
                }
                else if (e.keyCode == KeyCode.J || e.keyCode == KeyCode.Z)
                {
                    board.RotateShape(TetrisShape.RotateDirection.CounterClockwise);
                }
                else if (e.keyCode == KeyCode.L || e.keyCode == KeyCode.C)
                {
                    board.RotateShape(TetrisShape.RotateDirection.Clockwise);
                }
                else if (e.keyCode == KeyCode.Space && areKeysUp)
                {
                    board.DropShape();
                    areKeysUp = false;
                }

                break;

            case EventType.keyUp:
                areKeysUp = true;
                break;
            }

            board.Draw();
        }
        else
        {
            if (GUILayout.Button("New Game?"))
            {
                board = ScriptableObject.CreateInstance <TetrisBoard>();
                board.parentWindow = this;
            }
        }
    }
예제 #3
0
 public void canvasPaintHandler(Grasshopper.GUI.Canvas.GH_Canvas canvas)
 {
     board.Draw();
 }