Example #1
0
        //Ја валидира буквата дали постои во зборот и извришува дополнителни функции во зависност од тоа дали е валидна буквата или не
        private void ValidateLetter(char letter)
        {
            bool letterGuessIsCorrect = false;

            //Ибриши ги празните места од зборот.. за да дојде во форма како: u_i_e_s_ty
            string word = new string(WordToGuessLabel.Text.Where(c => !Char.IsWhiteSpace(c)).ToArray()).ToLower();

            for (int i = 0; i < Word.Name.Length; i++)
            {
                //Ако буквата кликната ја има во зборот, избриши го "_" цртичето и стави ја буквата.
                if (Word.Name[i] == letter)
                {
                    letterGuessIsCorrect = true;
                    word = word.Remove(i, 1);
                    word = word.Insert(i, letter.ToString());
                }
            }

            if (Word.Name == word)
            {
                Game.Player.HighScore += 1;
                Words.Remove(Word);
                Timer.Stop();
                UpdateDisplayWord(word);
                MessageBox.Show(LanguageSettings.WordGuessCorrect, LanguageSettings.WellDoneMessage);
                GenerateDisplayWord();
                return;
            }

            if (letterGuessIsCorrect == false)
            {
                ++Mistakes;
                string letters = letter + ", ";
                WrongoLettersLabel.Text += letters.ToUpper();
                switch (Mistakes)
                {
                case 1:
                    hangmanHead.Visible = true;
                    break;

                case 2:
                    hangmanBody.Visible = true;
                    break;

                case 3:
                    hangmanLeftArm.Visible = true;
                    break;

                case 4:
                    hangmanRightArm.Visible = true;
                    break;

                case 5:
                    hangmanLeftLeg.Visible = true;
                    break;

                case 6:
                    hangmanRightLeg.Visible = true;
                    break;

                default:
                    break;
                }

                if (Mistakes >= 6)
                {
                    Timer.Stop();
                    MessageBox.Show($"{LanguageSettings.WordGuessIncorrect}{Word.Name.ToUpper()}", LanguageSettings.YouGotHangedMessage);
                    SaveHighscore();
                    GenerateDisplayWord();
                    return;
                }
            }
            else
            {
                UpdateDisplayWord(word);
            }
        }