Splitting methods to optimize
continuous-integration/drone/push Build is passing Details

test_old_branch
Jules LASCRET 11 months ago
parent 48d41e0496
commit ef49b7ea53

@ -212,6 +212,31 @@ namespace QwirkleClassLibrary
return true; return true;
} }
public bool CheckExtendedSurroundingCells(Tile tile, int x, int y, int dx, int dy, Board b)
{
for (int i = 1; i < 7; i++)
{
var extendedCell = b.GetCell(x + i * dx, y + i * dy);
if (extendedCell?.GetTile == null)
{
break;
}
if (extendedCell.GetTile.GetColor != tile.GetColor && extendedCell.GetTile.GetShape != tile.GetShape)
{
return false;
}
if (i == 6)
{
return false;
}
}
return true;
}
public bool IsMoveCorrect(Tile t, int x, int y, Board b) public bool IsMoveCorrect(Tile t, int x, int y, Board b)
{ {
@ -220,7 +245,7 @@ namespace QwirkleClassLibrary
return true; return true;
} }
var surroundingCells = new[] var surroundingCells = new List<Cell?>
{ {
b.GetCell(x + 1, y), b.GetCell(x + 1, y),
b.GetCell(x - 1, y), b.GetCell(x - 1, y),
@ -243,24 +268,9 @@ namespace QwirkleClassLibrary
var dx = cell.GetX - x; var dx = cell.GetX - x;
var dy = cell.GetY - y; var dy = cell.GetY - y;
for (int i = 1; i < 7; i++) if (CheckExtendedSurroundingCells(t, x, y, dx, dy, b) == false)
{ {
var extendedCell = b.GetCell(x + i * dx, y + i * dy); return false;
if (extendedCell?.GetTile == null)
{
break;
}
if (extendedCell.GetTile.GetColor != t.GetColor && extendedCell.GetTile.GetShape != t.GetShape)
{
return false;
}
if (i == 6)
{
return false;
}
} }
} }
@ -270,7 +280,7 @@ namespace QwirkleClassLibrary
public bool IsGameOver() public bool IsGameOver()
{ {
return false; return true;
} }
} }
} }

@ -14,6 +14,8 @@ namespace QwirkleClassLibrary
bool IsMoveCorrect(Tile t, int x, int y, Board b); bool IsMoveCorrect(Tile t, int x, int y, Board b);
bool CheckExtendedSurroundingCells(Tile tile, int x, int y, int dx, int dy, Board b);
bool IsGameOver(); bool IsGameOver();
} }
} }

@ -195,7 +195,7 @@ static void MainMenu(Game game)
game.DrawTiles(game.GetPlayingPlayer()); game.DrawTiles(game.GetPlayingPlayer());
MenuSwitch(game); MenuSwitch(game);
} while (true); //while (game.GetPlayingPlayerPosition() != game.PlayerList.Count - 1); } while (game.IsGameOver()); //while (game.GetPlayingPlayerPosition() != game.PlayerList.Count - 1);
} }
static void MainGame() static void MainGame()

Loading…
Cancel
Save