создание BoatCompareByType

This commit is contained in:
VictoriaPresnyakova 2022-12-04 16:26:07 +04:00
parent 49a4f5fc8f
commit 20b507a35f
4 changed files with 31 additions and 24 deletions

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Catamaran
{
internal class BoatCompareByType
{
}
}

View File

@ -206,6 +206,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="AbstractMap.cs" /> <Compile Include="AbstractMap.cs" />
<Compile Include="BoatCompareByType.cs" />
<Compile Include="BoatNotFoundException.cs" /> <Compile Include="BoatNotFoundException.cs" />
<Compile Include="DrawingCatamaran.cs" /> <Compile Include="DrawingCatamaran.cs" />
<Compile Include="DrawingObjectBoat.cs" /> <Compile Include="DrawingObjectBoat.cs" />

View File

@ -21,28 +21,28 @@ namespace Catamaran
return _catamaran?.GetCurrentPosition() ?? default; return _catamaran?.GetCurrentPosition() ?? default;
} }
public bool Equals(IDrawingObject ? other) public bool Equals(IDrawingObject other)
{ {
if (other == null) if (other == null)
{ {
return false; return false;
} }
var otherCar = other as DrawingObjectBoat; var otherBoat = other as DrawingObjectBoat;
if (otherCar == null) if (otherBoat == null)
{ {
return false; return false;
} }
var car = _car.Car; var boat = _catamaran.Catamaran;
var otherCarCar = otherCar._car.Car; var otherBoatBoat = otherBoat._catamaran.Catamaran;
if (car.Speed != otherCarCar.Speed) if (boat.Speed != otherBoatBoat.Speed)
{ {
return false; return false;
} }
if (car.Weight != otherCarCar.Weight) if (boat.Weight != otherBoatBoat.Weight)
{ {
return false; return false;
} }
if (car.BodyColor != otherCarCar.BodyColor) if (boat.BodyColor != otherBoatBoat.BodyColor)
{ {
return false; return false;
} }

View File

@ -11,7 +11,7 @@ namespace Catamaran
/// </summary> /// </summary>
/// <typeparam name="T"></typeparam> /// <typeparam name="T"></typeparam>
internal class SetBoatsGeneric<T> internal class SetBoatsGeneric<T>
where T : class where T : class, IEquatable<T>
{ {
/// <summary> /// <summary>
/// Массив объектов, которые храним /// Массив объектов, которые храним
@ -40,15 +40,7 @@ namespace Catamaran
public int Insert(T boat) public int Insert(T boat)
{ {
for (int i = 0; i < _maxCount; i++) return Insert(boat, 0);
{
if (i == Count)
{
_places.Insert(i, boat);
return i;
}
}
throw new StorageOverflowException(_maxCount);
} }
/// <summary> /// <summary>
@ -59,13 +51,15 @@ namespace Catamaran
/// <returns></returns> /// <returns></returns>
public int Insert(T boat, int position) public int Insert(T boat, int position)
{ {
// TODO проверка позиции // TODO проверка на уникальность
// проверка позиции
if (position < 0 || position >= _maxCount) if (position < 0 || position >= _maxCount)
{ {
return -1 ; return -1 ;
} }
// TODO проверка, что элемент массива по этой позиции пустой,если нет, то // проверка, что элемент массива по этой позиции пустой,если нет, то
// проверка, что после вставляемого элемента в массиве есть пустой элемент // проверка, что после вставляемого элемента в массиве есть пустой элемент
// сдвиг всех объектов, находящихся справа от позиции до первого пустого элемента // сдвиг всех объектов, находящихся справа от позиции до первого пустого элемента
if (position == Count) if (position == Count)
@ -89,7 +83,7 @@ namespace Catamaran
} }
throw new StorageOverflowException(_maxCount); throw new StorageOverflowException(_maxCount);
} }
// TODO вставка по позиции // вставка по позиции
} }
/// <summary> /// <summary>
/// Удаление объекта из набора с конкретной позиции /// Удаление объекта из набора с конкретной позиции
@ -98,9 +92,9 @@ namespace Catamaran
/// <returns></returns> /// <returns></returns>
public T Remove(int position) public T Remove(int position)
{ {
// TODO проверка позиции // проверка позиции
if (position < 0 || position >= Count) throw new BoatNotFoundException(); if (position < 0 || position >= Count) throw new BoatNotFoundException();
// TODO удаление объекта из массива, присовив элементу массива значение null // удаление объекта из массива, присовив элементу массива значение null
var result = _places[position]; var result = _places[position];
_places.RemoveAt(position); _places.RemoveAt(position);
return result; return result;
@ -112,7 +106,7 @@ namespace Catamaran
/// <returns></returns> /// <returns></returns>
public T this[int position] public T this[int position]
{ {
// TODO проверка позиции // проверка позиции
get get
{ {
if (position >= 0 && position < _maxCount && position < Count) if (position >= 0 && position < _maxCount && position < Count)