Example #1
0
        public Player(string i_PlayerName, bool i_IsComputer, CoinStatusEnum.eCoinStatus i_CoinColor, Board i_BoardData)
        {
            m_Name           = i_PlayerName;
            m_IsComputer     = i_IsComputer;
            r_CoinColor      = i_CoinColor;
            m_BoardData      = i_BoardData;
            m_AvailableMoves = new List <Move>();

            InitializeAvailableMoves();
        }
Example #2
0
        private void onFlip(int i_Row, int i_Column, CoinStatusEnum.eCoinStatus i_FlipTo)
        {
            switch (i_FlipTo)
            {
            case CoinStatusEnum.eCoinStatus.Red:
                r_PictureBoxes[i_Row, i_Column].Image    = Properties.Resources.CoinRed;
                r_PictureBoxes[i_Row, i_Column].SizeMode = PictureBoxSizeMode.StretchImage;
                break;

            case CoinStatusEnum.eCoinStatus.Yellow:
                r_PictureBoxes[i_Row, i_Column].Image    = Properties.Resources.CoinYellow;
                r_PictureBoxes[i_Row, i_Column].SizeMode = PictureBoxSizeMode.StretchImage;
                break;
            }

            r_PictureBoxes[i_Row, i_Column].Refresh();
        }
Example #3
0
        public void UpdateBoardAfterMove(Move i_MoveThatWasMade, CoinStatusEnum.eCoinStatus i_PlayerCoinColor)
        {
            int i;
            int j;

            switch (i_MoveThatWasMade.Direction)
            {
            case MoveDirectionEnum.eMoveDirection.Up:
                for (i = i_MoveThatWasMade.From.Row - 1; i >= i_MoveThatWasMade.To.Row; i--)
                {
                    m_Board[i, i_MoveThatWasMade.From.Column] = i_PlayerCoinColor;
                    m_CoinFliped.Invoke(i, i_MoveThatWasMade.From.Column, i_PlayerCoinColor);
                }

                break;

            case MoveDirectionEnum.eMoveDirection.Right:
                for (j = i_MoveThatWasMade.From.Column + 1; j <= i_MoveThatWasMade.To.Column; j++)
                {
                    m_Board[i_MoveThatWasMade.From.Row, j] = i_PlayerCoinColor;
                    m_CoinFliped.Invoke(i_MoveThatWasMade.From.Row, j, i_PlayerCoinColor);
                }

                break;

            case MoveDirectionEnum.eMoveDirection.Left:
                for (j = i_MoveThatWasMade.From.Column - 1; j >= i_MoveThatWasMade.To.Column; j--)
                {
                    m_Board[i_MoveThatWasMade.From.Row, j] = i_PlayerCoinColor;
                    m_CoinFliped.Invoke(i_MoveThatWasMade.From.Row, j, i_PlayerCoinColor);
                }

                break;

            case MoveDirectionEnum.eMoveDirection.Down:
                for (i = i_MoveThatWasMade.From.Row + 1; i <= i_MoveThatWasMade.To.Row; i++)
                {
                    m_Board[i, i_MoveThatWasMade.From.Column] = i_PlayerCoinColor;
                    m_CoinFliped.Invoke(i, i_MoveThatWasMade.From.Column, i_PlayerCoinColor);
                }

                break;

            case MoveDirectionEnum.eMoveDirection.DiagonalUpRight:
                for (i = i_MoveThatWasMade.From.Row - 1, j = i_MoveThatWasMade.From.Column + 1; i >= i_MoveThatWasMade.To.Row && j <= i_MoveThatWasMade.To.Column; i--, j++)
                {
                    m_Board[i, j] = i_PlayerCoinColor;
                    m_CoinFliped.Invoke(i, j, i_PlayerCoinColor);
                }

                break;

            case MoveDirectionEnum.eMoveDirection.DiagonalUpLeft:
                for (i = i_MoveThatWasMade.From.Row - 1, j = i_MoveThatWasMade.From.Column - 1; i >= i_MoveThatWasMade.To.Row && j >= i_MoveThatWasMade.To.Column; i--, j--)
                {
                    m_Board[i, j] = i_PlayerCoinColor;
                    m_CoinFliped.Invoke(i, j, i_PlayerCoinColor);
                }

                break;

            case MoveDirectionEnum.eMoveDirection.DiagonalDownRight:
                for (i = i_MoveThatWasMade.From.Row + 1, j = i_MoveThatWasMade.From.Column + 1; i <= i_MoveThatWasMade.To.Row && j <= i_MoveThatWasMade.To.Column; i++, j++)
                {
                    m_Board[i, j] = i_PlayerCoinColor;
                    m_CoinFliped.Invoke(i, j, i_PlayerCoinColor);
                }

                break;

            case MoveDirectionEnum.eMoveDirection.DiagonalDownLeft:
                for (i = i_MoveThatWasMade.From.Row + 1, j = i_MoveThatWasMade.From.Column - 1; i <= i_MoveThatWasMade.To.Row && j >= i_MoveThatWasMade.To.Column; i++, j--)
                {
                    m_Board[i, j] = i_PlayerCoinColor;
                    m_CoinFliped.Invoke(i, j, i_PlayerCoinColor);
                }

                break;
            }
        }