public void GameAction(ConsoleKey keypressed) { RecolourTile(Minefield[HorizontalPosition, VerticalPosition].NormalColour, HorizontalPosition, VerticalPosition, Minefield); if (Minefield[HorizontalPosition, VerticalPosition].Flag == true) RecolourTile(FlagColour, HorizontalPosition, VerticalPosition, Minefield); switch (keypressed) { case ConsoleKey.UpArrow: if (VerticalPosition != 0) VerticalPosition = -1; RecolourTile(HighlightColour, HorizontalPosition, VerticalPosition, Minefield); break; case ConsoleKey.DownArrow: if (VerticalPosition + 1 != VerticalTiles) VerticalPosition = 1; RecolourTile(HighlightColour, HorizontalPosition, VerticalPosition, Minefield); break; case ConsoleKey.LeftArrow: if (HorizontalPosition != 0) HorizontalPosition = -1; RecolourTile(HighlightColour, HorizontalPosition, VerticalPosition, Minefield); break; case ConsoleKey.RightArrow: if (HorizontalPosition + 1 != HorizontalTiles) HorizontalPosition = 1; RecolourTile(HighlightColour, HorizontalPosition, VerticalPosition, Minefield); break; case ConsoleKey.Spacebar: if (Minefield[HorizontalPosition, VerticalPosition].Flag == false) { Minefield[HorizontalPosition, VerticalPosition].FlagTile(); RecolourTile(FlagColour, HorizontalPosition, VerticalPosition, Minefield); } else { Minefield[HorizontalPosition, VerticalPosition].UnflagTile(); RecolourTile(HighlightColour, HorizontalPosition, VerticalPosition, Minefield); } break; case ConsoleKey.Enter: Tile thisTile = Minefield[HorizontalPosition, VerticalPosition]; if (thisTile.Flag == true) { } else if (thisTile.Mine == true) { Console.WriteLine("You lost, gg"); GameFinished = true; } else { thisTile.UncoverTile(CoverColour, CoverSecondaryColour, UncoverColour, UncoverSecondaryColour, HorizontalPosition, VerticalPosition, Minefield, this); RecolourTile(HighlightColour, HorizontalPosition, VerticalPosition, Minefield); } break; case ConsoleKey.H: Hint(); break; } }