public void Run() { mLogger.LogInformationSource(Constants.MinesweeperMessages.IntroductionMessage); Console.WriteLine(Constants.MinesweeperMessages.IntroductionMessage); mineNumber = AskUserForNumber("Type number of mines: "); fieldNumber = AskUserForNumber("Type number of fields: "); InitializeMinesweeperBoards(); FillAllMinesweeperBoards(); PrintMinesweeperBoard(exposedArray); PrintMinesweeperBoard(hiddenArray); while (GetGameState() == MinesweeperGameState.Progress) { MinesweeperCoordinate minesweeperCoordinate = AskForCoordinates(); DiscoverCoordinate(minesweeperCoordinate); PrintMinesweeperBoard(exposedArray); PrintMinesweeperBoard(hiddenArray); } Console.WriteLine(GetGameState() == MinesweeperGameState.Win ? "You have won!!!" : "You have lost!!! HAHAHA"); }
private void DiscoverCoordinate(MinesweeperCoordinate minesweeperCoordinate) { // Has zero neighbour mines if (exposedArray[minesweeperCoordinate.X, minesweeperCoordinate.Y].MineCount == 0) { CheckZeroes(minesweeperCoordinate.X, minesweeperCoordinate.Y); } hiddenArray[minesweeperCoordinate.X, minesweeperCoordinate.Y] = exposedArray[minesweeperCoordinate.X, minesweeperCoordinate.Y]; }