Esempio n. 1
0
        private void btnClick(object sender, EventArgs e) // ao clicar qualquer botão do teclado exibido, esse evento será chamado
        {
            try
            {
                Button botao = (Button)sender;   // o objeto botão será o botão pressionado
                quaisBotoes[qtosBotoes] = botao; // vetor de botões pressionados para podermos habilitar-los depois
                qtosBotoes++;

                botao.Enabled = false;                    // desabilitamos o botão
                string letraBotao = botao.Text.ToLower(); // a string letra botao, declarada anteriormente, será o texto do botão pressionado,
                                                          // ou seja, a letra que o botão representa
                                                          // como no arquivo texto usamos letras minúsculas, usamos o método ToLower() para transformar o valor do botão para letras minúsculas também

                int   qtsOcorrencias    = 0;
                int[] posicoesNaPalavra = vetor.PosicoesNaPalavra(letraBotao, ref qtsOcorrencias); // vetor que terá as posições de ocorrência da letra

                if (qtsOcorrencias > 0)                                                            // ou seja, se a letra foi encontrada na palvra
                {
                    qtsPontos      += qtsOcorrencias;                                              // somamos um ponto pra cada letra acertada
                    lbPontos.Text   = "Pontos:" + qtsPontos.ToString();                            // adicionamos os pontos
                    botao.BackColor = Color.Green;                                                 // deixamos o botão verde para informar que a letra estava na palavra
                    AdicionarNoDgv(dgvPalavra, posicoesNaPalavra, qtsOcorrencias, letraBotao);     //exibimos no datagridview
                }
                else // se a letra não for encontrada na palavra, ou seja, se o jogador errou
                {
                    qtsErros++;                                           // conta-se mais um erro
                    lbErros.Text    = "Erros(8): " + qtsErros.ToString(); //marcamos os erros
                    botao.BackColor = Color.Red;                          // deixamos os botões vermelho para informar que não tinha na palavra
                    ExibirErrosNaForca(qtsErros);                         // exibimos a imagem com o número do erro correspondente
                }

                if (qtsPontos == vetor.QtosCaracteres) // se a pontuação for igual o tamanho da palavra
                {
                    tmrTempo.Stop();                   // paramos o timer
                    tmrTempo.Enabled = false;
                    GameWin();                         // o jogador ganha
                }

                if (qtsErros == 8)   // se o jogador errar oito vezes ele perde
                {
                    tmrTempo.Stop(); // paramos o timer
                    tmrTempo.Enabled = false;
                    GameOver();      // o jogador perde
                }
            }
            catch { //deixamos o catch vazio para evitar que os clicks abusivos do usuário causem erro no programa
            }
        }