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

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

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

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

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

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Human : IWalking, IShooter
    {
        public string Name { get; set; }
 
        public void WalkInConsole(int countOfSteps)
        {
            // Реализация ходьбы
        }
 
        public Human(string name)
        {
            Name = name;
        }
 
        public void ShootInConsole(int countOfShoots)
        {
            // человек стреляет пулями
            for (int i = 0; i < countOfShoots; i++) Console.Write('.');
            Console.WriteLine();
        }
    }
 
    class Tower : IShooter
    {
        public string Name { get; set; }
 
        public Tower(string name)
        {
            Name = name;
        }
 
        public void ShootInConsole(int countOfShoots)
        {
            // башня стреляет ядрами
            for (int i = 0; i < countOfShoots; i++) Console.Write('*');
            Console.WriteLine();
        }
    }
 
    interface IShooter
    {
        string Name { get; set; }
        void ShootInConsole(int countOfShots);
    }
 
    interface IWalking
    {
        void WalkInConsole(int countOfSteps);
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Human VS Towers\n");
 
            Human human = new Human("Tom");
            Tower tower = new Tower("EastTower");
 
            IShooter[] stalkers = new IShooter[] { human, tower };
 
            Random rand = new Random();
            foreach (var stalker in stalkers)
            {
                Console.WriteLine("{0} with name {1} shooting: ", stalker.GetType().Name, stalker.Name);
                stalker.ShootInConsole(rand.Next(5, 15));
                Console.WriteLine();
            }
        }
    }
}

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


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

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

13   голосов , оценка 4.154 из 5
Похожие ответы