示例#1
0
        // Kör spelet efter initering. Metoden returnerar när spelet tar
        // s**t genom att något av följande händer:
        // - Spelaren avslutade spelet med kommandot 'q'.
        // - Spelaren förlorade spelet genom att röja en minerad ruta.
        // - Spelaren vann spelet genom att alla ej minerade rutor är röjda.
        public int Run() // Stubbe
        {
            Console.WriteLine();
            Console.Clear();
            board.Print();

            while (!(quit || board.PlayerWon || board.GameOver))
            {
                Console.WriteLine();


                string input = ReadCommand("> ");
                if (input.Length == 1)
                {
                    quit = true;
                    return(status = 2);
                }

                var command = input[0].ToString();
                var cols    = char.Parse(input[2].ToString());
                int col     = ((int)char.ToUpper(cols)) - 65;
                var row     = int.Parse(input[3].ToString());



                if (command == "r")
                {
                    if (board.TryReveal(row, col))
                    {
                        board.Print();
                    }

                    if (board.GameOver)
                    {
                        Console.WriteLine();
                        Console.WriteLine("GAME OVER!");
                        return(status = 1);
                    }
                    if (board.PlayerWon)
                    {
                        Console.WriteLine();
                        Console.WriteLine("WELL DONE!");
                        return(status = 0);
                    }
                    continue;
                }
                if (command == "f")
                {
                    if (board.TryFlag(row, col))
                    {
                        board.Print();
                    }
                }
            }
            return(status);
        }