示例#1
0
 public void CleanRows()
 {
     foreach (Block[] row in TetrisBoard.BlocksInRows())
     {
         int at_y = TetrisBoard.BlockPoint(row[0]).Y;
         ClearRow(row);
         FillRowGapAt(at_y);
     }
 }
示例#2
0
        public void CleanRows_WithRows_FillGaps()
        {
            Block blockFarAboveGap = new Block();

            _tetrisBoard.AddBlockAt(blockFarAboveGap, new Point(0, 0));
            Block blockAboveGap = new Block();

            _tetrisBoard.AddBlockAt(blockAboveGap, new Point(4, 1));
            Block blockBelowGap = new Block();

            FillBoardRowAt(2);
            FillBoardRowAt(3);
            _tetrisBoard.AddBlockAt(blockBelowGap, new Point(0, 4));

            _tetrisBoardOperator.CleanRows();

            Assert.Equal(new Point(0, 2), _tetrisBoard.BlockPoint(blockFarAboveGap));
            Assert.Equal(new Point(4, 3), _tetrisBoard.BlockPoint(blockAboveGap));
            Assert.Equal(new Point(0, 4), _tetrisBoard.BlockPoint(blockBelowGap));
        }