Esempio n. 1
0
        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");
        }
Esempio n. 2
0
        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];
        }