Научиться проектировать и реализовывать интерфейсы в C#, применять полиморфизм и инкапсуляцию при создании игровых объектов.
Ключевые навыки:
Требуется создать систему классов для игры "Космический бой", где корабли могут:
Реализация:
ISpaceship
с базовыми методамиCruiser
(крейсер) и Fighter
(истребитель), реализующие ISpaceship
Ознакомьтесь с источниками, указанными в списке литературы, который указан в конце данного задания.
public interface ISpaceship
{
void MoveForward(); // Движение вперед
void Rotate(int angle); // Поворот на угол (градусы)
void Fire(); // Выстрел ракетой
int Speed { get; } // Скорость корабля
int FirePower { get; } // Мощность выстрела
}
Истребитель имеет скорость 100, крейсер 50 единиц.
using Xunit;
using Moq;
public class SpaceshipTests
{
[Fact]
public void Cruiser_ShouldHaveCorrectStats()
{
ISpaceship cruiser = new Cruiser();
Assert.Equal(50, cruiser.Speed);
Assert.Equal(100, cruiser.FirePower);
}
[Fact]
public void Fighter_ShouldBeFasterThanCruiser()
{
var fighter = new Fighter();
var cruiser = new Cruiser();
Assert.True(fighter.Speed > cruiser.Speed);
}
}
Необходимо доопределить недостающие тесты.
Написать реализации интерфейса космического корабля для истребителя и крейсера.
Интерфейсы в C# - официальная документация Microsoft
Основы работы с интерфейсами в C#
Тестирование с xUnit
Официальное руководство по xUnit.NET