Пример #1
0
        private void fromFeedbackToColor()
        {
            for (int i = 0; i < 4; i++)
            {
                eFeedback feedback = m_Board.Game.Results[m_Board.Turn - 1, i];

                if (feedback == eFeedback.V)
                {
                    m_Board.Results[m_Board.Turn - 1].ResultButtons[i].BackColor = Color.Black;
                }
                else if (feedback == eFeedback.X)
                {
                    m_Board.Results[m_Board.Turn - 1].ResultButtons[i].BackColor = Color.Yellow;
                }
            }
        }
Пример #2
0
        public void Turn(eValidLetter[] i_Guess)
        {
            eFeedback[] feedbacks             = new eFeedback[GameUtils.k_LengthOfSecret];
            byte        numOfCorrectlyGuesses = 0;

            for (int i = 0; i < GameUtils.k_LengthOfSecret; i++)
            {
                m_Pins[m_CurrentTurn, i] = i_Guess[i];
                if (Array.Exists(m_Secret, element => element == i_Guess[i]))
                {
                    if (m_Secret[i] == i_Guess[i])
                    {
                        feedbacks[i] = eFeedback.V;
                        numOfCorrectlyGuesses++;
                    }
                    else
                    {
                        feedbacks[i] = eFeedback.X;
                    }
                }
            }

            Array.Sort(feedbacks);
            Array.Reverse(feedbacks);
            for (int i = 0; i < GameUtils.k_LengthOfSecret; i++)
            {
                m_Results[m_CurrentTurn, i] = feedbacks[i];
            }

            m_CurrentTurn++;
            if (m_CurrentTurn == m_NumberOfGuesses)
            {
                m_HasMoreGuesses = false;
            }

            if (numOfCorrectlyGuesses == GameUtils.k_LengthOfSecret)
            {
                m_HasWon = true;
            }
        }