|
|
@ -29,25 +29,39 @@ namespace Models.Rules
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//public bool IsCellAdjacent(Cell choosenCell, Cell targetCell)
|
|
|
|
|
|
|
|
//{
|
|
|
|
|
|
|
|
// if (Math.Abs(choosenCell.X - targetCell.X) > 1 || Math.Abs(choosenCell.Y - targetCell.Y) > 1)
|
|
|
|
|
|
|
|
// return false;
|
|
|
|
|
|
|
|
// if (Math.Abs(choosenCell.X - targetCell.X) > 1 && Math.Abs(choosenCell.Y - targetCell.Y) > 1)
|
|
|
|
|
|
|
|
// return false;
|
|
|
|
|
|
|
|
// if (choosenCell.X == 0 && targetCell.X == 4)
|
|
|
|
|
|
|
|
// return false;
|
|
|
|
|
|
|
|
// if (choosenCell.Y == 0 && targetCell.Y == 4)
|
|
|
|
|
|
|
|
// return false;
|
|
|
|
|
|
|
|
// if (choosenCell.X == 4 && targetCell.X == 0)
|
|
|
|
|
|
|
|
// return false;
|
|
|
|
|
|
|
|
// if (choosenCell.Y == 4 && targetCell.Y == 0)
|
|
|
|
|
|
|
|
// return false;
|
|
|
|
|
|
|
|
// if (choosenCell.X == targetCell.X && choosenCell.Y == targetCell.Y)
|
|
|
|
|
|
|
|
// return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// return true;
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
public bool IsCellAdjacent(Cell choosenCell, Cell targetCell)
|
|
|
|
public bool IsCellAdjacent(Cell choosenCell, Cell targetCell)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (Math.Abs(choosenCell.X - targetCell.X) > 1 || Math.Abs(choosenCell.Y - targetCell.Y) > 1)
|
|
|
|
if (Math.Abs(choosenCell.X - targetCell.X) <= 1 && Math.Abs(choosenCell.Y - targetCell.Y) <= 1)
|
|
|
|
return false;
|
|
|
|
{
|
|
|
|
if (Math.Abs(choosenCell.X - targetCell.X) > 1 && Math.Abs(choosenCell.Y - targetCell.Y) > 1)
|
|
|
|
if (choosenCell.X != targetCell.X || choosenCell.Y != targetCell.Y)
|
|
|
|
return false;
|
|
|
|
{
|
|
|
|
if (choosenCell.X == 0 && targetCell.X == 4)
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (choosenCell.Y == 0 && targetCell.Y == 4)
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (choosenCell.X == 4 && targetCell.X == 0)
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (choosenCell.Y == 4 && targetCell.Y == 0)
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (choosenCell.X == targetCell.X && choosenCell.Y == targetCell.Y)
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public bool IsInRopePaths (Cell adjacente,List<List<Cell>> ropePaths,int index)
|
|
|
|
public bool IsInRopePaths (Cell adjacente,List<List<Cell>> ropePaths,int index)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -70,6 +84,25 @@ namespace Models.Rules
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//public bool NearCellIsValid(Cell choosenCell, List<Cell> cells)
|
|
|
|
|
|
|
|
//{
|
|
|
|
|
|
|
|
// if (choosenCell == null || cells == null) return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// IEnumerable<Cell> PlayedCellsQuery =
|
|
|
|
|
|
|
|
// from cell in cells
|
|
|
|
|
|
|
|
// where cell.Value != null
|
|
|
|
|
|
|
|
// select cell;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// foreach (var cell in PlayedCellsQuery)
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// if(!IsCellAdjacent(choosenCell, cell)) continue;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// return true;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// return false;
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
public bool NearCellIsValid(Cell choosenCell, List<Cell> cells)
|
|
|
|
public bool NearCellIsValid(Cell choosenCell, List<Cell> cells)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (choosenCell == null || cells == null) return false;
|
|
|
|
if (choosenCell == null || cells == null) return false;
|
|
|
@ -81,14 +114,16 @@ namespace Models.Rules
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var cell in PlayedCellsQuery)
|
|
|
|
foreach (var cell in PlayedCellsQuery)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(!IsCellAdjacent(choosenCell, cell)) continue;
|
|
|
|
if (IsCellAdjacent(choosenCell, cell))
|
|
|
|
|
|
|
|
{
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void IsZoneValidAndAddToZones(Cell chosenCell, Map map)
|
|
|
|
public void IsZoneValidAndAddToZones(Cell chosenCell, Map map)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (chosenCell == null ||chosenCell.Value == null) return;
|
|
|
|
if (chosenCell == null ||chosenCell.Value == null) return;
|
|
|
|