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(); } } }
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); }