コード例 #1
0
        /// <summary>
        /// Returns a brush whose colour depends on the type of Tetris piece
        /// </summary>
        private SolidColorBrush GetBrush(TetrisPiece piece)
        {
            switch (piece.Type)
            {
            case PieceType.I:
                return(Brushes.OrangeRed);

            case PieceType.O:
                return(Brushes.Goldenrod);

            case PieceType.T:
                return(Brushes.SlateGray);

            case PieceType.S:
                return(Brushes.DeepSkyBlue);

            case PieceType.Z:
                return(Brushes.LimeGreen);

            case PieceType.L:
                return(Brushes.DarkBlue);

            case PieceType.J:
                return(Brushes.DarkGreen);

            default:
                return(Brushes.DarkGray);
            }
        }
コード例 #2
0
 /// <summary>
 /// Starts a new game of Tetris
 /// </summary>
 public void StartGame()
 {
     FixedPieces.Clear();
     MovingPiece = TetrisPiece.GetRandomPiece();
     FuturePiece = TetrisPiece.GetRandomPiece();
     Score       = 0;
     Timer.Start();
 }
コード例 #3
0
        /// <summary>
        /// Draws the future piece onto the display
        /// </summary>
        private void DrawFuturePiece(TetrisPiece piece)
        {
            SolidColorBrush brush = GetBrush(piece);

            foreach (Square point in piece.OccupiedSquares)
            {
                FutureRects[point.Y, point.X - 4].Fill = brush;
            }
        }
コード例 #4
0
        /// <summary>
        /// Moves on to the next piece
        /// </summary>
        private void NextPiece()
        {
            PrevPosition.Clear();
            FixedPieces.Add(MovingPiece);
            MovingPiece = FuturePiece;
            FuturePiece = TetrisPiece.GetRandomPiece();

            CheckFilledRows();
        }
コード例 #5
0
        private void GenerateNextBatch()
        {
            List <int> ints = new List <int>()
            {
            };

            for (int i = 0; i < Enum.GetNames(typeof(Tetrimino)).Length; i++)
            {
                ints.Add(i);
            }

            Random random = new Random();

            while (ints.Count > 0)
            {
                int index     = random.Next(0, ints.Count);
                int randomInt = ints[index];
                ints.RemoveAt(index);
                TetrisPiece piece = EnumToTetrisPiece((Tetrimino)randomInt);
                Queue.Enqueue(piece);
            }
        }
コード例 #6
0
 public BoardPiece(TetrisPiece tetrisPiece, Position position)
 {
     TetrisPiece = tetrisPiece;
     Position    = position;
 }