/// <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); } }
/// <summary> /// Starts a new game of Tetris /// </summary> public void StartGame() { FixedPieces.Clear(); MovingPiece = TetrisPiece.GetRandomPiece(); FuturePiece = TetrisPiece.GetRandomPiece(); Score = 0; Timer.Start(); }
/// <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; } }
/// <summary> /// Moves on to the next piece /// </summary> private void NextPiece() { PrevPosition.Clear(); FixedPieces.Add(MovingPiece); MovingPiece = FuturePiece; FuturePiece = TetrisPiece.GetRandomPiece(); CheckFilledRows(); }
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); } }
public BoardPiece(TetrisPiece tetrisPiece, Position position) { TetrisPiece = tetrisPiece; Position = position; }