Exemplo n.º 1
0
 static void EnemyMove(Tank enemy, Tank player)
 {
     if (enemy.Health.IsMax)
     {
         enemy.Shoot(player);
     }
     else
     {
         Random r = new Random();
         if (0.5f > r.NextDouble())
         {
             enemy.Shoot(player);
         }
         else
         {
             enemy.Repair();
         }
     }
 }
Exemplo n.º 2
0
        public static bool Open(Tank myTank, Tank enemyTank) //Функция вызова контекстного меню
        {
            if (myTank.MyHealth <= 0)                        //Проверка на поражение
            {
                Console.WriteLine("Вы проиграли!");
                Console.WriteLine("\nНажмите для выхода..");
                Console.ReadKey();
                return(true);
            }
            if (enemyTank.MyHealth <= 0)//Проверка на победу
            {
                Console.WriteLine("Победа!");
                Console.WriteLine("\nНажмите для выхода..");
                Console.ReadKey();
                return(true);
            }
            Console.ForegroundColor = ConsoleColor.Green;
            myTank.GetStatus();    //Выводим текущее состояние нашего танка
            Console.ForegroundColor = ConsoleColor.Red;
            enemyTank.GetStatus(); //Выводим текущее состояние вражеского танка
            Console.ResetColor();
            Console.WriteLine("\nВаш ход!\n");
            int int_choice;

            Show();                                    //Выводим варианты действий
            try                                        //Отлавливаем исключения при вводе данных
            {
                string _choice = Console.ReadLine();   //Выбираем с клавиатуры режим
                int_choice = Convert.ToInt32(_choice); //Преобразуем в int для более удобной работы
                switch (int_choice)                    //Рекурсивный выбор
                {
                case 1:                                //Выстрел
                    myTank.Shot(enemyTank);            //Игрок стреляет
                    EnemyStep(myTank, enemyTank);
                    break;

                case 2:              //Починка
                    myTank.Repair(); //Игрок ремонтируется
                    EnemyStep(myTank, enemyTank);
                    break;

                case 3:    //Перезарядка
                    myTank.Reload();
                    EnemyStep(myTank, enemyTank);
                    break;

                case 4:    //Выход
                    break;

                default:    //Неверный ввод
                    Console.WriteLine("Неверный ввод. Нажмите чтоб продолжить..");
                    Console.ReadKey();
                    Console.Clear();
                    Open(myTank, enemyTank);
                    break;
                }
            }
            catch (System.FormatException)//Перезапуск меню при ошибке ввода
            {
                Console.WriteLine("Неверный ввод. Нажмите чтоб продолжить..");
                Console.ReadKey();
                Console.Clear();
                Open(myTank, enemyTank);//Перезапуск хода путем вызова игрового меню
            }
            return(true);
        }