private bool updateCurrentflipCoinsArray(List <Point> i_FlippedCoinsArray, ref bool io_IsOppositeUserColorFlag, ref bool io_IsUserColorFlag, int i_CoordinateX, int i_CoordinateY)
        {
            bool v_IsContinueWithLoop = true;

            Coin.eCoinColor currentOppositePlayerColor = this.getOppositePlayer.GetPlayerColor;
            Coin.eCoinColor currentPlayerColor         = m_CurrentTurn.GetPlayerColor;

            if (r_BoardMatrix.GetCoin(i_CoordinateX, i_CoordinateY).StateOfCoin == currentOppositePlayerColor)
            {
                i_FlippedCoinsArray.Add(new Point(i_CoordinateX, i_CoordinateY));
                if (!io_IsOppositeUserColorFlag)
                {
                    io_IsOppositeUserColorFlag = !io_IsOppositeUserColorFlag;
                }
            }
            else if (r_BoardMatrix.GetCoin(i_CoordinateX, i_CoordinateY).StateOfCoin == currentPlayerColor)
            {
                if (io_IsOppositeUserColorFlag)
                {
                    flipCoinsArray(i_FlippedCoinsArray);
                }

                v_IsContinueWithLoop = !v_IsContinueWithLoop;
            }
            else
            {
                v_IsContinueWithLoop = !v_IsContinueWithLoop;
            }

            return(v_IsContinueWithLoop);
        }
Example #2
0
 private void addPicture(Coin.eCoinColor i_Color, PictureBox i_PictureBox)
 {
     if (i_Color == Coin.eCoinColor.Red)
     {
         i_PictureBox.Image = WindowsUI.Properties.Resources.CoinRed;
     }
     else
     {
         i_PictureBox.Image = WindowsUI.Properties.Resources.CoinYellow;
     }
 }
Example #3
0
        public int GetTheNumberOfCoinsWithSameColor(Coin.eCoinColor i_CoinColorInput)
        {
            int countTheNumberOfSameColorCoin = 0;

            foreach (Coin coin in r_BoardMatrix)
            {
                if (coin.StateOfCoin == i_CoinColorInput)
                {
                    ++countTheNumberOfSameColorCoin;
                }
            }

            return(countTheNumberOfSameColorCoin);
        }
Example #4
0
        public Player(string i_FullName, Coin.eCoinColor i_PlayerColor, eStateOfPlayer i_PlayerState)
        {
            r_PlayerState = i_PlayerState;

            if (i_FullName != null)
            {
                r_FullName = i_FullName;
            }

            if (i_PlayerColor != Coin.eCoinColor.Uninitiliazed)
            {
                r_PlayerColor = i_PlayerColor;
            }
        }
Example #5
0
        private void ChangeFormText(Coin.eCoinColor i_Color)
        {
            string formText;

            if (i_Color.Equals(Coin.eCoinColor.Red))
            {
                formText = string.Format(@"Otehllo - {0}'s Turn", Coin.eCoinColor.Red.ToString());
            }
            else
            {
                formText = string.Format(@"Otehllo - {0}'s Turn", Coin.eCoinColor.Yellow.ToString());
            }

            this.Text = formText;
        }
        private void addPossibleMoves(List <Point> i_PossiblePlayerMovesArray, ref bool io_IsCurrentPlayerColor, ref bool io_IsOppositePlayerColor, int i_CoordinateX, int i_CoordinateY)
        {
            Coin.eCoinColor currentPlayerColor         = m_CurrentTurn.GetPlayerColor;
            Coin.eCoinColor currentOppositePlayerColor = getOppositePlayer.GetPlayerColor;

            if (r_BoardMatrix.GetCoin(i_CoordinateX, i_CoordinateY).StateOfCoin == currentPlayerColor && !io_IsCurrentPlayerColor)
            {
                io_IsCurrentPlayerColor = !io_IsCurrentPlayerColor;
            }

            if (r_BoardMatrix.GetCoin(i_CoordinateX, i_CoordinateY).StateOfCoin == currentOppositePlayerColor)
            {
                if (io_IsCurrentPlayerColor)
                {
                    if (!io_IsOppositePlayerColor)
                    {
                        io_IsOppositePlayerColor = !io_IsOppositePlayerColor;
                    }
                }
            }
            else if (r_BoardMatrix.GetCoin(i_CoordinateX, i_CoordinateY).StateOfCoin == currentPlayerColor)
            {
                if (io_IsCurrentPlayerColor && io_IsOppositePlayerColor)
                {
                    io_IsOppositePlayerColor = !io_IsOppositePlayerColor;
                }
            }
            else if (r_BoardMatrix.GetCoin(i_CoordinateX, i_CoordinateY).StateOfCoin == Coin.eCoinColor.Uninitiliazed)
            {
                if (io_IsCurrentPlayerColor && io_IsOppositePlayerColor)
                {
                    i_PossiblePlayerMovesArray.Add(new Point(i_CoordinateX, i_CoordinateY));
                    io_IsCurrentPlayerColor  = !io_IsCurrentPlayerColor;
                    io_IsOppositePlayerColor = !io_IsOppositePlayerColor;
                }
                else if (io_IsCurrentPlayerColor)
                {
                    io_IsCurrentPlayerColor = !io_IsCurrentPlayerColor;
                }
                else if (io_IsOppositePlayerColor)
                {
                    io_IsOppositePlayerColor = !io_IsOppositePlayerColor;
                }
            }
        }
Example #7
0
        private void flipCoins(List <Coin> i_SequenceOfCoinsToFlip, Coin.eCoinColor i_NewColor)
        {
            foreach (Coin itrCoin in i_SequenceOfCoinsToFlip)
            {
                itrCoin.Color = i_NewColor;
                if (i_NewColor.Equals(Coin.eCoinColor.Red))
                {
                    m_GameBoard.RedLinkedList.AddLast(itrCoin);
                    m_GameBoard.YellowLinkedList.Remove(itrCoin);
                }
                else
                {
                    m_GameBoard.YellowLinkedList.AddLast(itrCoin);
                    m_GameBoard.RedLinkedList.Remove(itrCoin);
                }

                m_GameBoard.FlipCoinInNotifiers(itrCoin);
            }
        }
Example #8
0
 public Player(ePlayerTypes i_PlayerType, Coin.eCoinColor i_PlayerColorOfCoin)
 {
     m_PlayerType        = i_PlayerType;
     m_PlayerColorOfCoin = i_PlayerColorOfCoin;
 }