Пример #1
0
        /// <summary>
        /// Initializes a new instance of the Application class.
        /// </summary>
        public Application()
        {
            m_gameState = GameState.Playing;

            m_minefield = new Minefield(this, m_fieldWidth, m_fieldHeight, m_mineCount);
            //m_mineField = new MineField(m_fieldWidth, m_fieldHeight, m_mineCount, m_seed);

            m_metalDetector = new MetalDetector(m_minefield);

            Console.Write("Begin!\n");
            m_minefield.Draw();
        }
Пример #2
0
        /// <summary>
        /// Main gameplay loop
        /// </summary>
        public void Run()
        {
            // initial click is random
            Random rand    = new Random();
            uint   randRow = (uint)rand.Next(0, (int)m_minefield.GetRows());
            uint   randCol = (uint)rand.Next(0, (int)m_minefield.GetCols());

            uint[] nextCellToOpen = new uint[] { randRow, randCol };

            // main gameplay loop
            while (m_gameState == GameState.Playing)
            {
                // Prompt user
                Console.Write("Press Enter for next step!\n");
                // Wait for enter to proceed
                Console.ReadKey();
                // Display the cell opened next
                Console.Write("Opened Row: " + (int)nextCellToOpen[0] + ", Col: " + (int)nextCellToOpen[1] + '\n');
                // Open the cell if failed, game over
                m_minefield.OpenCell(nextCellToOpen[0], nextCellToOpen[1]);
                // Figure out the next cell to open if the game isn't over
                if (m_gameState == GameState.Playing)
                {
                    nextCellToOpen = m_metalDetector.DecideNextCellToOpen();
                }
                // Display updated minefield
                m_minefield.Draw();
            }

            // End game
            switch (m_gameState)
            {
            case GameState.GameOver:
                Console.WriteLine("Game Over");
                break;

            case GameState.GameWin:
                Console.WriteLine("You Win!");
                break;

            default:
                Console.WriteLine("Something went wrong...");
                break;
            }
        }