Интерфейсы или наследование - C#

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

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

Добрый день, помогите с реализацией программы: Я хочу написать в консоли мини-игрушку. В ней должен быть класс Человек, класс Башня и два интерфейса: стрелять и ходить. Как мне реализовать интерфейсы, чтобы, например, человек мог и ходить и стрелять, а башня могла только стрелять, только начинаю учить интерфейсы и немного не понимаю, как их реализовать в моей идее.

Решение задачи: «Интерфейсы или наследование»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication1
  8. {
  9.     class Human : IWalking, IShooter
  10.     {
  11.         public string Name { get; set; }
  12.  
  13.         public void WalkInConsole(int countOfSteps)
  14.         {
  15.             // Реализация ходьбы
  16.         }
  17.  
  18.         public Human(string name)
  19.         {
  20.             Name = name;
  21.         }
  22.  
  23.         public void ShootInConsole(int countOfShoots)
  24.         {
  25.             // человек стреляет пулями
  26.             for (int i = 0; i < countOfShoots; i++) Console.Write('.');
  27.             Console.WriteLine();
  28.         }
  29.     }
  30.  
  31.     class Tower : IShooter
  32.     {
  33.         public string Name { get; set; }
  34.  
  35.         public Tower(string name)
  36.         {
  37.             Name = name;
  38.         }
  39.  
  40.         public void ShootInConsole(int countOfShoots)
  41.         {
  42.             // башня стреляет ядрами
  43.             for (int i = 0; i < countOfShoots; i++) Console.Write('*');
  44.             Console.WriteLine();
  45.         }
  46.     }
  47.  
  48.     interface IShooter
  49.     {
  50.         string Name { get; set; }
  51.         void ShootInConsole(int countOfShots);
  52.     }
  53.  
  54.     interface IWalking
  55.     {
  56.         void WalkInConsole(int countOfSteps);
  57.     }
  58.  
  59.     class Program
  60.     {
  61.         static void Main(string[] args)
  62.         {
  63.             Console.WriteLine("Human VS Towers\n");
  64.  
  65.             Human human = new Human("Tom");
  66.             Tower tower = new Tower("EastTower");
  67.  
  68.             IShooter[] stalkers = new IShooter[] { human, tower };
  69.  
  70.             Random rand = new Random();
  71.             foreach (var stalker in stalkers)
  72.             {
  73.                 Console.WriteLine("{0} with name {1} shooting: ", stalker.GetType().Name, stalker.Name);
  74.                 stalker.ShootInConsole(rand.Next(5, 15));
  75.                 Console.WriteLine();
  76.             }
  77.         }
  78.     }
  79. }

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


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

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

13   голосов , оценка 4.154 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы