Esempio n. 1
0
        /// <summary>
        /// Analiza a tentativa do jogador
        /// </summary>
        /// <param name="letra">Letra que o jogador submete ao teste</param>
        /// <returns>true se a letra existe na palavra, caso contrário false</returns>
        public bool FazTentativa(char letra)
        {
            // verifica a primeira posição  onde a letra aparece na palavra
            int pos = palavraSorteada.IndexOf(letra);
            // define retorno false inicialmente
            bool result = false;

            // se o jogo não foi iniciado gera um erro
            if (StatusJogo != JogoForcaStatusJogo.StatusIniciado)
            {
                throw new Exception("Jogo não foi iniciado...");
            }
            else
            {
                // se a letra não existe na palavra ou a letra já foi acertada
                if (pos < 0 || letrasCertas.IndexOf(letra) >= 0)
                {
                    CtdErros++;
                    if (CtdErros >= LimiteDeErros)
                    {
                        StatusJogo = JogoForcaStatusJogo.StatusPerdeu;
                    }
                }
                else
                {
                    CtdAcertos++;
                    // limpa a lista contendo as posições onde a letra aparece na palavra
                    _posicoesDaLetra.Clear();
                    // adiciona a letra na lista de letras acertadas
                    letrasCertas.Add(letra);
                    // redefine a lista de posições da palavra onde a letra aparece e
                    // a lista de posições já acertadas
                    for (int i = 0; i < palavraSorteada.Length; i++)
                    {
                        if (palavraSorteada[i] == letra)
                        {
                            _posicoesDaLetra.Add((byte)i);
                            posicoesCertas[i] = 1;
                        }
                    }
                    // se não existirem zeros na lista de posições acertadas, indica que o jogador venceu
                    if (posicoesCertas.IndexOf(0) < 0)
                    {
                        StatusJogo = JogoForcaStatusJogo.StatusGanhou;
                    }
                    result = true;
                }
            }
            return(result);
        }
Esempio n. 2
0
        /// <summary>
        /// Inicia o jogo e inicializa as propriedades
        /// </summary>
        /// <returns>Retorna com a palavra sorteada</returns>
        public string Inicia()
        {
            LoadXML();
            int ns  = rn.Next(palavras.Count);
            int cod = palavras[ns].Codigo;
            var dicasSelecionadas = from d in dicas
                                    where (d.Codigo == cod)
                                    select new { d.Descricao };

            palavraSorteada = palavras[ns].Descricao;
            dicasDaPalavra.Clear();
            for (int i = 0; i < dicasSelecionadas.ToList().Count; i++)
            {
                this.dicasDaPalavra.Add(dicasSelecionadas.ToList()[i].Descricao);
            }

            StatusJogo = JogoForcaStatusJogo.StatusIniciado;
            if (posicoesCertas != null)
            {
                posicoesCertas.Clear();
            }

            for (int i = 0; i < palavraSorteada.Length; i++)
            {
                posicoesCertas.Add(0);
            }

            if (_posicoesDaLetra != null)
            {
                _posicoesDaLetra.Clear();
            }

            _posicoesDaLetra = new List <byte>();

            CtdDicas      = 0;
            LimiteDeDicas = 3;
            CtdAcertos    = 0;
            CtdErros      = 0;
            LimiteDeErros = 6;
            letrasCertas.Clear();

            return(palavraSorteada);
        }