Недостижимый код - C#
Формулировка задачи:
Собственно имеется задание
Написал код:
При этом последние 2 строки определяются как недостижимый код, т.к. при нажатии любой клавиши из case запускается бесконечный цикл. Опыта в программировании мало и не понимаю, как выйти из данного цикла.
Создайте класс Hero персонажа компьютерной игры. Класс должен содержать следующие поля:
• координаты x, y;
• здоровье;
• сила;
и следующие методы
• движение вниз, вверх, влево, вправо;
• попадание удара, при котором здоровье уменьшается на 1;
• удар (в качестве параметра передается сила удара от 1 до 3), при котором уменьшается собственная сила на 0.5 единиц от силы удара.
Написать программу демонстрирующую работу объекта этого класса. Клавиши S, W, A, D отвечают за перемещение объекта, клавиша E – за удар. Нажатие клавиши X имитирует попадание в персонажа удара противника. После нажатия клавиши на экран выводится текущее состояние объекта. Клавиша Q – выход.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Drawing; namespace ConsoleApplication3 { class Hero { public int x = 0; public int y = 0; public int hp = 3; public double power = 3; public void printHero() { Console.WriteLine(" x={0},y={1},hp={2},power={3}", x, y, hp, power); } public void hitHero() { hp = hp - 1; } public void attackHero() { power = power - 0.5; } static void Main(string[] args) { Hero hero; hero = new Hero(); ConsoleKeyInfo keypress; keypress = Console.ReadKey(); while (true) { switch (keypress.KeyChar) { case 'A': hero.x = hero.x - 1; hero.printHero(); break; case 'D': hero.x = hero.x +1; hero.printHero(); break; case 'W': hero.y = hero.y + 1; hero.printHero(); break; case 'S': hero.y = hero.y - 1; hero.printHero(); break; case 'E': hero.attackHero(); hero.printHero(); break; case 'X': hero.hitHero(); hero.printHero(); break; default: break; } } Console.ReadLine(); return; } } }
Решение задачи: «Недостижимый код»
textual
Листинг программы
static void Main(string[] args) { Hero hero; hero = new Hero(); ConsoleKeyInfo keypress; bool cont=true keypress = Console.ReadKey(); while (cont) { switch (keypress.KeyChar) { case 'A': hero.x = hero.x - 1; hero.printHero(); break; case 'D': hero.x = hero.x +1; hero.printHero(); break; case 'W': hero.y = hero.y + 1; hero.printHero(); break; case 'S': hero.y = hero.y - 1; hero.printHero(); break; case 'E': hero.attackHero(); hero.printHero(); break; case 'X': hero.hitHero(); hero.printHero(); break; case 'Q': cont = false; break; default: break; } } Console.ReadLine(); return; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д