создание BoatCompareByType
This commit is contained in:
parent
49a4f5fc8f
commit
20b507a35f
12
Catamaran/BoatCompareByType.cs
Normal file
12
Catamaran/BoatCompareByType.cs
Normal 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
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
@ -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" />
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user