private void Reset()
        {
            SelectionPanel.Children.Clear();
            for (int i = 0; i < RowSlider.Value; i++)
            {
                List <Peg> pegs = new List <Peg>();
                for (int j = 0; j < ColumnSlider.Value; j++)
                {
                    pegs.Add(new Peg());
                }

                PegButtonContainerControl pegContainer = new PegButtonContainerControl(pegs);
                SelectionPanel.Children.Add(pegContainer);
            }

            HintPanel.Children.Clear();
            for (int i = 0; i < RowSlider.Value; i++)
            {
                List <Peg> pegs = new List <Peg>();
                for (int j = 0; j < ColumnSlider.Value; j++)
                {
                    pegs.Add(new Peg());
                }

                PegContainerControl pegContainer = new PegContainerControl(pegs);
                HintPanel.Children.Add(pegContainer);
            }
        }
Example #2
0
        private void SubmitButton_Click(object sender, RoutedEventArgs e)
        {
            PegButtonContainerControl pegContainer = (PegButtonContainerControl)SelectionPanel.Children[CurrentRow];
            List <Peg> pegs      = pegContainer.Pegs;
            int        hintIndex = 0;

            for (int i = 0; i < pegs.Count; i++)
            {
                for (int j = 0; j < answerPegs.Count; j++)
                {
                    if (pegs[i].Color == answerPegs[j].Color)
                    {
                        PegContainerControl hintContainer = (PegContainerControl)HintPanel.Children[CurrentRow];
                        hintContainer.Pegs[hintIndex].Color = (i == j) ? Peg.CORRECT_COLOR_POSITION : Peg.CORRECT_COLOR;
                        hintIndex++;
                        break;
                    }
                }
            }
        }
        private void SubmitButton_Click(object sender, RoutedEventArgs e)
        {
            PegButtonContainerControl pegContainer = (PegButtonContainerControl)SelectionPanel.Children[CurrentRow];
            List <Peg> pegs = pegContainer.Pegs;

            List <Peg> selectPegsCopy = new List <Peg>();

            pegs.ForEach((item) => { selectPegsCopy.Add((Peg)item.Clone()); });

            List <Peg> answerPegsCopy = new List <Peg>();

            answerPegs.ForEach((item) => { answerPegsCopy.Add((Peg)item.Clone()); });

            int hintIndex = 0;


            for (int i = 0; i < selectPegsCopy.Count; i++)
            {
                if (selectPegsCopy[i].Color == answerPegsCopy[i].Color)
                {
                    selectPegsCopy[i].Color = Peg.NULL_COLOR;
                    answerPegsCopy[i].Color = Peg.NULL_COLOR;

                    PegContainerControl pegHintContainer = (PegContainerControl)HintPanel.Children[CurrentRow];
                    pegHintContainer.Pegs[hintIndex].Color = Peg.CORRECT_COLOR_POSITION;

                    updateScore(CurrentPlayer, numGuess);
                    numOfPegs++;
                    hintIndex++;
                }
                if (numOfPegs == pegs.Count)
                {
                    updateScore(CurrentPlayer, numGuess);
                    MessageBox.Show("You won!");
                    ResetGame();
                }
                else
                {
                    if (numGuess <= GuessSlider.Value)
                    {
                        numGuess++;
                    }
                    else
                    {
                        //lose condition
                        MessageBox.Show("Ran out of guesses! better luck next time!");
                        ResetGame();
                    }
                }
            }

            for (int i = 0; i < selectPegsCopy.Count; i++)
            {
                for (int j = 0; j < answerPegsCopy.Count; j++)
                {
                    if (selectPegsCopy[i].Color != Peg.NULL_COLOR && selectPegsCopy[i].Color == answerPegsCopy[j].Color)
                    {
                        selectPegsCopy[i].Color = Peg.NULL_COLOR;
                        answerPegsCopy[j].Color = Peg.NULL_COLOR;

                        PegContainerControl pegHintContainer = (PegContainerControl)HintPanel.Children[CurrentRow];
                        pegHintContainer.Pegs[hintIndex].Color = Peg.CORRECT_COLOR;

                        if (numGuess <= GuessSlider.Value)
                        {
                            numGuess++;
                        }
                        hintIndex++;
                    }
                }
            }

            CurrentRow++;
        }