Exemplo n.º 1
0
        private static void Main()
        {
            string command = string.Empty;
            char[,] gameField = CreateGameField();
            char[,] mines = SetMines();
            int counter = 0;
            bool grum = false;
            List<Ranking> champions = new List<Ranking>(6);
            int row = 0;
            int column = 0;
            bool flag = true;
            const int max = 35;
            bool flag2 = false;

            do
            {
                if (flag)
                {
                    Console.WriteLine(
                        "Hajde da igraem na “Mini4KI”. Probvaj si kasmeta da otkriesh poleteta bez mini4ki."
                        + " Komanda 'top' pokazva klasiraneto, 'restart' po4va nova igra, 'exit' izliza i hajde 4ao!");
                    dumpp(gameField);
                    flag = false;
                }

                Console.Write("Daj red i kolona : ");
                command = Console.ReadLine().Trim();
                if (command.Length >= 3)
                {
                    if (int.TryParse(command[0].ToString(), out row) && int.TryParse(command[2].ToString(), out column)
                        && row <= gameField.GetLength(0) && column <= gameField.GetLength(1))
                    {
                        command = "turn";
                    }
                }

                switch (command)
                {
                    case "top":
                        GetRanking(champions);
                        break;
                    case "restart":
                        gameField = CreateGameField();
                        mines = SetMines();
                        dumpp(gameField);
                        break;
                    case "exit":
                        Console.WriteLine("4a0, 4a0, 4a0!");
                        break;
                    case "turn":
                        if (mines[row, column] != '*')
                        {
                            if (mines[row, column] == '-')
                            {
                                ChangeTurn(gameField, mines, row, column);
                                counter++;
                            }

                            if (max == counter)
                            {
                                flag2 = true;
                            }
                            else
                            {
                                dumpp(gameField);
                            }
                        }
                        else
                        {
                            grum = true;
                        }

                        break;
                    default:
                        Console.WriteLine("\nGreshka! nevalidna Komanda\n");
                        break;
                }

                if (grum)
                {
                    dumpp(mines);
                    Console.Write("\nHrrrrrr! Umria gerojski s {0} to4ki. " + "Daj si niknejm: ", counter);
                    string nickName = Console.ReadLine();
                    Ranking t = new Ranking(nickName, counter);
                    if (champions.Count < 5)
                    {
                        champions.Add(t);
                    }
                    else
                    {
                        for (int i = 0; i < champions.Count; i++)
                        {
                            if (champions[i].Points < t.Points)
                            {
                                champions.Insert(i, t);
                                champions.RemoveAt(champions.Count - 1);
                                break;
                            }
                        }
                    }

                    champions.Sort((Ranking r1, Ranking r2) => r2.player.CompareTo(r1.player));
                    champions.Sort((Ranking r1, Ranking r2) => r2.Points.CompareTo(r1.Points));
                    GetRanking(champions);

                    gameField = CreateGameField();
                    mines = SetMines();
                    counter = 0;
                    grum = false;
                    flag = true;
                }

                if (flag2)
                {
                    Console.WriteLine("\nBRAVOOOS! Otvori 35 kletki bez kapka kryv.");
                    dumpp(mines);
                    Console.WriteLine("Daj si imeto, batka: ");
                    string name = Console.ReadLine();
                    Ranking points = new Ranking(name, counter);
                    champions.Add(points);
                    GetRanking(champions);
                    gameField = CreateGameField();
                    mines = SetMines();
                    counter = 0;
                    flag2 = false;
                    flag = true;
                }
            }
            while (command != "exit");
            Console.WriteLine("Made in Bulgaria - Uauahahahahaha!");
            Console.WriteLine("AREEEEEEeeeeeee.");
            Console.Read();
        }
Exemplo n.º 2
0
         private static void Main(string[] args)
         {
             string command = string.Empty;
             char[,] gameField = CreateGameField();
             char[,] mines = SetMines();
             int counter = 0;
             bool isFired = false;
             List<Ranking> winners = new List<Ranking>(6);
             int row = 0;
             int col = 0;
             bool isNewGame = true;
             const int MaxTurns = 35;
             bool areTurnsMaxed = false;

             do
             {
                 if (isNewGame)
                 {
                     Console.WriteLine(
                         "Let's go! Play the Minesweeper game. The command 'top' show the ranking," +
                         "'restart' - reset the game and command 'exit' - left the game");
                     SetGameBoard(gameField);
                     isNewGame = false;
                 }

                 Console.Write("Enter row and col : ");
                 command = Console.ReadLine().Trim();
                 if (command.Length >= 3)
                 {
                     if (int.TryParse(command[0].ToString(), out row) &&
                         int.TryParse(command[2].ToString(), out col) &&
                         row <= gameField.GetLength(0) &&
                         col <= gameField.GetLength(1))
                     {
                         command = "turn";
                     }
                 }

                 switch (command)
                 {
                     case "top":
                         GetRanking(winners);
                         break;
                     case "restart":
                         gameField = CreateGameField();
                         mines = SetMines();
                         SetGameBoard(gameField);
                         isFired = false;
                         isNewGame = false;
                         break;
                     case "exit":
                         Console.WriteLine("Bye, Bye!");
                         break;
                     case "turn":
                         if (mines[row, col] != '*')
                         {
                             if (mines[row, col] == '-')
                             {
                                 ChangeTurn(gameField, mines, row, col);
                                 counter++;
                             }

                             if (MaxTurns == counter)
                             {
                                 areTurnsMaxed = true;
                             }
                             else
                             {
                                 SetGameBoard(gameField);
                             }
                         }
                         else
                         {
                             isFired = true;
                         }

                         break;
                     default:
                         Console.WriteLine("\nError! Invalid command!\n");
                         break;
                 }

                 if (isFired)
                 {
                     SetGameBoard(mines);
                     Console.WriteLine("\n Game over! You died a hero with : {0} points. Enter your nickname : ", counter);
                     string nickname = Console.ReadLine();
                     Ranking winner = new Ranking(nickname, counter);
                     int winnersLimit = 5;
                     if (winners.Count < winnersLimit)
                     {
                         winners.Add(winner);
                     }
                     else
                     {
                         for (int i = 0; i < winners.Count; i++)
                         {
                             if (winners[i].Points < winner.Points)
                             {
                                 winners.Insert(i, winner);
                                 winners.RemoveAt(winners.Count - 1);
                                 break;
                             }
                         }
                     }

                     winners.Sort((Ranking ranking1, Ranking ranking2) => ranking2.Name.CompareTo(ranking1.Name));
                     winners.Sort((Ranking ranking1, Ranking ranking2) => ranking2.Points.CompareTo(ranking1.Points));
                     GetRanking(winners);

                     gameField = CreateGameField();
                     mines = SetMines();
                     counter = 0;
                     isFired = false;
                     isNewGame = true;
                 }

                 if (areTurnsMaxed)
                 {
                     Console.WriteLine("\ncongratulations! You find 35 cells without hurt yourself!");
                     SetGameBoard(mines);
                     Console.WriteLine("Enter your name: ");
                     string name = Console.ReadLine();
                     Ranking points = new Ranking(name, counter);
                     winners.Add(points);
                     GetRanking(winners);
                     gameField = CreateGameField();
                     mines = SetMines();
                     counter = 0;
                     areTurnsMaxed = false;
                     isNewGame = true;
                 }
             }
             while (command != "exit");
             Console.Read();
         }
        public void Run()
        {
            do
            {
                if (this.flag)
                {
                    Console.WriteLine(
                        "Hajde da igraem na “Mini4KI”. Probvaj si kasmeta da otkriesh poleteta bez mini4ki."
                        + " Komanda 'top' pokazva klasiraneto, 'restart' po4va nova igra, 'exit' izliza i hajde 4ao!");
                    Dump(this.field);
                    this.flag = false;
                }

                Console.Write("Daj red i kolona : ");
                this.command = Console.ReadLine().Trim();
                if (this.command.Length >= 3)
                {
                    if (int.TryParse(this.command[0].ToString(), out row) && int.TryParse(this.command[2].ToString(), out this.column)
                        && this.row <= this.field.GetLength(0) && this.column <= this.field.GetLength(1))
                    {
                        this.command = "turn";
                    }
                }

                switch (this.command)
                {
                    case "top":
                        GetRanking(this.champions);
                        break;
                    case "restart":
                        this.field = CreateGameField();
                        this.mines = PlantMines();
                        Dump(this.field);
                        this.hasExploded = false;
                        this.flag = false;
                        break;
                    case "exit":
                        Console.WriteLine("4a0, 4a0, 4a0!");
                        break;
                    case "turn":
                        if (this.mines[this.row, this.column] != '*')
                        {
                            if (this.mines[this.row, this.column] == '-')
                            {
                                ChangeTurn(this.field, this.mines, this.row, this.column);
                                this.counter++;
                            }

                            if (max == this.counter)
                            {
                                this.flag2 = true;
                            }
                            else
                            {
                                Dump(this.field);
                            }
                        }
                        else
                        {
                            this.hasExploded = true;
                        }

                        break;
                    default:
                        Console.WriteLine("\nGreshka! nevalidna Komanda\n");
                        break;
                }

                if (this.hasExploded)
                {
                    Dump(this.mines);
                    Console.Write("\nHrrrrrr! Umria gerojski s {0} to4ki. " + "Daj si niknejm: ", this.counter);
                    string nickname = Console.ReadLine();
                    Ranking t = new Ranking(nickname, this.counter);
                    if (this.champions.Count < 5)
                    {
                        this.champions.Add(t);
                    }
                    else
                    {
                        for (int i = 0; i < this.champions.Count; i++)
                        {
                            if (this.champions[i].Points < t.Points)
                            {
                                this.champions.Insert(i, t);
                                this.champions.RemoveAt(this.champions.Count - 1);
                                break;
                            }
                        }
                    }

                    this.champions.Sort((Ranking r1, Ranking r2) => r2.Name.CompareTo(r1.Name));
                    this.champions.Sort((Ranking r1, Ranking r2) => r2.Points.CompareTo(r1.Points));
                    GetRanking(this.champions);

                    this.field = CreateGameField();
                    this.mines = PlantMines();
                    this.counter = 0;
                    this.hasExploded = false;
                    this.flag = true;
                }

                if (this.flag2)
                {
                    Console.WriteLine("\nBRAVOOOS! Otvri 35 kletki bez kapka kryv.");
                    Dump(this.mines);
                    Console.WriteLine("Daj si imeto, batka: ");
                    string name = Console.ReadLine();
                    Ranking points = new Ranking(name, this.counter);
                    this.champions.Add(points);
                    GetRanking(champions);
                    this.field = CreateGameField();
                    this.mines = PlantMines();
                    this.counter = 0;
                    this.flag2 = false;
                    this.flag = true;
                }
            }
            while (this.command != "exit");
        }
        private static void Main()
        {
            string command = string.Empty;

            char[,] gameField = CreateGameField();
            char[,] mines     = SetMines();
            int            counter   = 0;
            bool           grum      = false;
            List <Ranking> champions = new List <Ranking>(6);
            int            row       = 0;
            int            column    = 0;
            bool           flag      = true;
            const int      max       = 35;
            bool           flag2     = false;

            do
            {
                if (flag)
                {
                    Console.WriteLine(
                        "Hajde da igraem na “Mini4KI”. Probvaj si kasmeta da otkriesh poleteta bez mini4ki."
                        + " Komanda 'top' pokazva klasiraneto, 'restart' po4va nova igra, 'exit' izliza i hajde 4ao!");
                    dumpp(gameField);
                    flag = false;
                }

                Console.Write("Daj red i kolona : ");
                command = Console.ReadLine().Trim();
                if (command.Length >= 3)
                {
                    if (int.TryParse(command[0].ToString(), out row) && int.TryParse(command[2].ToString(), out column) &&
                        row <= gameField.GetLength(0) && column <= gameField.GetLength(1))
                    {
                        command = "turn";
                    }
                }

                switch (command)
                {
                case "top":
                    GetRanking(champions);
                    break;

                case "restart":
                    gameField = CreateGameField();
                    mines     = SetMines();
                    dumpp(gameField);
                    break;

                case "exit":
                    Console.WriteLine("4a0, 4a0, 4a0!");
                    break;

                case "turn":
                    if (mines[row, column] != '*')
                    {
                        if (mines[row, column] == '-')
                        {
                            ChangeTurn(gameField, mines, row, column);
                            counter++;
                        }

                        if (max == counter)
                        {
                            flag2 = true;
                        }
                        else
                        {
                            dumpp(gameField);
                        }
                    }
                    else
                    {
                        grum = true;
                    }

                    break;

                default:
                    Console.WriteLine("\nGreshka! nevalidna Komanda\n");
                    break;
                }

                if (grum)
                {
                    dumpp(mines);
                    Console.Write("\nHrrrrrr! Umria gerojski s {0} to4ki. " + "Daj si niknejm: ", counter);
                    string  nickName = Console.ReadLine();
                    Ranking t        = new Ranking(nickName, counter);
                    if (champions.Count < 5)
                    {
                        champions.Add(t);
                    }
                    else
                    {
                        for (int i = 0; i < champions.Count; i++)
                        {
                            if (champions[i].Points < t.Points)
                            {
                                champions.Insert(i, t);
                                champions.RemoveAt(champions.Count - 1);
                                break;
                            }
                        }
                    }

                    champions.Sort((Ranking r1, Ranking r2) => r2.player.CompareTo(r1.player));
                    champions.Sort((Ranking r1, Ranking r2) => r2.Points.CompareTo(r1.Points));
                    GetRanking(champions);

                    gameField = CreateGameField();
                    mines     = SetMines();
                    counter   = 0;
                    grum      = false;
                    flag      = true;
                }

                if (flag2)
                {
                    Console.WriteLine("\nBRAVOOOS! Otvori 35 kletki bez kapka kryv.");
                    dumpp(mines);
                    Console.WriteLine("Daj si imeto, batka: ");
                    string  name   = Console.ReadLine();
                    Ranking points = new Ranking(name, counter);
                    champions.Add(points);
                    GetRanking(champions);
                    gameField = CreateGameField();
                    mines     = SetMines();
                    counter   = 0;
                    flag2     = false;
                    flag      = true;
                }
            }while (command != "exit");
            Console.WriteLine("Made in Bulgaria - Uauahahahahaha!");
            Console.WriteLine("AREEEEEEeeeeeee.");
            Console.Read();
        }
        /// <summary>
        ///     The engine.
        /// </summary>
        public void Run()
        {
            do
            {
                if (this.flag)
                {
                    Console.WriteLine(
                        "Hajde da igraem na “Mini4KI”. Probvaj si kasmeta da otkriesh poleteta bez mini4ki."
                        + " Komanda 'top' pokazva klasiraneto, 'restart' po4va nova igra, 'exit' izliza i hajde 4ao!");
                    Dump(this.gameField);
                    this.flag = false;
                }

                Console.Write("Daj red i kolona : ");
                this.command = Console.ReadLine().Trim();
                if (this.command.Length >= 3)
                {
                    if (int.TryParse(this.command[0].ToString(), out this.row) &&
                        int.TryParse(this.command[2].ToString(), out this.column) &&
                        this.row <= this.gameField.GetLength(0) && this.column <= this.gameField.GetLength(1))
                    {
                        this.command = "turn";
                    }
                }

                switch (this.command)
                {
                case "top":
                    GetRanking(this.champions);
                    break;

                case "restart":
                    this.gameField = CreateGameField();
                    this.mines     = SetMines();
                    Dump(this.gameField);
                    break;

                case "exit":
                    Console.WriteLine("4a0, 4a0, 4a0!");
                    break;

                case "turn":
                    if (this.mines[this.row, this.column] != '*')
                    {
                        if (this.mines[this.row, this.column] == '-')
                        {
                            ChangeTurn(this.gameField, this.mines, this.row, this.column);
                            this.counter++;
                        }

                        if (Max == this.counter)
                        {
                            this.flag2 = true;
                        }
                        else
                        {
                            Dump(this.gameField);
                        }
                    }
                    else
                    {
                        this.grum = true;
                    }

                    break;

                default:
                    Console.WriteLine("\nGreshka! nevalidna Komanda\n");
                    break;
                }

                if (this.grum)
                {
                    Dump(this.mines);
                    Console.Write("\nHrrrrrr! Umria gerojski s {0} to4ki. " + "Daj si niknejm: ", this.counter);
                    string  nickName = Console.ReadLine();
                    Ranking t        = new Ranking(nickName, this.counter);
                    if (this.champions.Count < 5)
                    {
                        this.champions.Add(t);
                    }
                    else
                    {
                        for (int i = 0; i < this.champions.Count; i++)
                        {
                            if (this.champions[i].Points < t.Points)
                            {
                                this.champions.Insert(i, t);
                                this.champions.RemoveAt(this.champions.Count - 1);
                                break;
                            }
                        }
                    }

                    this.champions.Sort(
                        (Ranking r1, Ranking r2) => string.Compare(r2.Player, r1.Player, StringComparison.Ordinal));
                    this.champions.Sort((Ranking r1, Ranking r2) => r2.Points.CompareTo(r1.Points));
                    GetRanking(this.champions);

                    this.gameField = CreateGameField();
                    this.mines     = SetMines();
                    this.counter   = 0;
                    this.grum      = false;
                    this.flag      = true;
                }

                if (this.flag2)
                {
                    Console.WriteLine("\nBRAVOOOS! Otvori 35 kletki bez kapka kryv.");
                    Dump(this.mines);
                    Console.WriteLine("Daj si imeto, batka: ");
                    string  name   = Console.ReadLine();
                    Ranking points = new Ranking(name, this.counter);
                    this.champions.Add(points);
                    GetRanking(this.champions);
                    this.gameField = CreateGameField();
                    this.mines     = SetMines();
                    this.counter   = 0;
                    this.flag2     = false;
                    this.flag      = true;
                }
            }while (this.command != "exit");
        }