private void setColorInGivenDirection(Point i_StartCell, eCoinColor i_CoinColor, int i_XDirection, int i_YDirection) { i_StartCell.X += i_XDirection; i_StartCell.Y += i_YDirection; while (IsInBorders(i_StartCell) && BoardMatrix[i_StartCell.X, i_StartCell.Y] != i_CoinColor) { setCellColor(i_StartCell, i_CoinColor); i_StartCell.X += i_XDirection; i_StartCell.Y += i_YDirection; } }
public void FlipCoin() { if (m_CoinColor == eCoinColor.Black) { m_CoinColor = eCoinColor.White; } else if (m_CoinColor == eCoinColor.White) { m_CoinColor = eCoinColor.Black; } }
public void MakeMove(Point i_PointToPlay, eCoinColor i_ColorPlaying) { setCellColor(i_PointToPlay, i_ColorPlaying); for (int x = -1; x < 2; ++x) { for (int y = -1; y < 2; ++y) { if (IsLegalDirection(i_ColorPlaying, i_PointToPlay, x, y)) { setColorInGivenDirection(i_PointToPlay, i_ColorPlaying, x, y); } } } }
/*Area's Function*/ public static eCoinColor SwapColor(eCoinColor i_ColorToSwap) { switch (i_ColorToSwap) { case eCoinColor.Black: return(eCoinColor.White); case eCoinColor.White: return(eCoinColor.Black); default: return(eCoinColor.Empty); } }
public bool IsLegalDirection(eCoinColor i_CoinColor, Point i_StartCell, int i_XDirection, int i_YDirection) { Point cell = new Point(i_StartCell.X + i_XDirection, i_StartCell.Y + i_YDirection); if (IsInBorders(cell) && BoardMatrix[cell.X, cell.Y] == SwapColor(i_CoinColor)) { cell.X += i_XDirection; cell.Y += i_YDirection; while (IsInBorders(cell) && BoardMatrix[cell.X, cell.Y] == SwapColor(i_CoinColor)) { cell.X += i_XDirection; cell.Y += i_YDirection; } return(IsInBorders(cell) && BoardMatrix[cell.X, cell.Y] == i_CoinColor); } return(false); }
public Coin(eCoinColor i_coinColor) { m_CoinColor = i_coinColor; }
private void setCellColor(Point i_Cell, eCoinColor i_ColorToSet) { BoardMatrix[i_Cell.X, i_Cell.Y] = i_ColorToSet; }
public Board(int i_SizeOfBoard) { SizeOfBoard = i_SizeOfBoard; BoardMatrix = new eCoinColor[SizeOfBoard, SizeOfBoard]; this.InitBoard(); }
public Coin(eCoinColor i_Color, int i_Row, int i_Column) { m_CoinColor = i_Color; m_LocationOfCoin = new Point(i_Row, i_Column); }