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); } }
private void ResetAnswer() { answerPegs.Clear(); AnswerPanel.Children.Clear(); for (int i = 0; i < NumPegs; i++) { Peg peg = new Peg(); peg.Color = (Peg.Colors)random.Next(1, (int)Peg.Colors.Num_Colors); answerPegs.Add(peg); } PegButtonContainerControl pegContainer = new PegButtonContainerControl(answerPegs); AnswerPanel.Children.Add(pegContainer); }
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++; }