Equals в AbstractMap

This commit is contained in:
Павел Сорокин 2022-12-02 11:50:08 +04:00
parent 27cbe93ede
commit 619e8623ae

View File

@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace Liner
{
internal abstract class AbstractMap
internal abstract class AbstractMap : IEquatable<AbstractMap>
{
private IDrawingObject _drawningObject = null;
protected int[,] _map = null;
@ -139,5 +139,45 @@ namespace Liner
protected abstract void GenerateMap();
protected abstract void DrawRoadPart(Graphics g, int i, int j);
protected abstract void DrawBarrierPart(Graphics g, int i, int j);
public bool Equals(AbstractMap? other)
{
if(other == null)
{
return false;
}
var otherMap = other as AbstractMap;
if(otherMap == null)
{
return false;
}
if(_width != otherMap._width)
{
return false;
}
if(_height != otherMap._height)
{
return false;
}
if (_size_x != otherMap._size_x)
{
return false;
}
if (_size_y != otherMap._size_y)
{
return false;
}
for(int i = 0; i < _map.GetLength(0); i++)
{
for (int j = 0; j < _map.GetLength(1); j++)
{
if (_map[i, j] != otherMap._map[i, j])
{
return false;
}
}
}
return true;
}
}
}