Example #1
0
 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;
     }
 }
Example #2
0
 public void FlipCoin()
 {
     if (m_CoinColor == eCoinColor.Black)
     {
         m_CoinColor = eCoinColor.White;
     }
     else if (m_CoinColor == eCoinColor.White)
     {
         m_CoinColor = eCoinColor.Black;
     }
 }
Example #3
0
 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);
             }
         }
     }
 }
Example #4
0
        /*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);
            }
        }
Example #5
0
        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);
        }
Example #6
0
 public Coin(eCoinColor i_coinColor)
 {
     m_CoinColor = i_coinColor;
 }
Example #7
0
 private void setCellColor(Point i_Cell, eCoinColor i_ColorToSet)
 {
     BoardMatrix[i_Cell.X, i_Cell.Y] = i_ColorToSet;
 }
Example #8
0
 public Board(int i_SizeOfBoard)
 {
     SizeOfBoard = i_SizeOfBoard;
     BoardMatrix = new eCoinColor[SizeOfBoard, SizeOfBoard];
     this.InitBoard();
 }
Example #9
0
 public Coin(eCoinColor i_Color, int i_Row, int i_Column)
 {
     m_CoinColor      = i_Color;
     m_LocationOfCoin = new Point(i_Row, i_Column);
 }