Недостижимый код - C#

Узнай цену своей работы

Формулировка задачи:

Собственно имеется задание
Создайте класс 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;
        }
    }
}
При этом последние 2 строки определяются как недостижимый код, т.к. при нажатии любой клавиши из case запускается бесконечный цикл. Опыта в программировании мало и не понимаю, как выйти из данного цикла.

Решение задачи: «Недостижимый код»

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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5