Ejemplo n.º 1
0
        }//numero aleatorio para elegit palabra de diccionario al azar

        public void GeneraPalabra()
        {
            int numero = GenerateRandom(0, diccionario.Count - 1);

            if (numerosUsados.IndexOf(numero) >= 0)
            {
                // si el numero ya fue usad
                GeneraPalabra();
            }
            else
            {
                Palabra = diccionario.ElementAt(numero);
                //elimino los acentos de las palabras
                Palabra = Palabra.Replace('á', 'a');
                Palabra = Palabra.Replace('é', 'e');
                Palabra = Palabra.Replace('í', 'i');
                Palabra = Palabra.Replace('ó', 'o');
                Palabra = Palabra.Replace('ú', 'u');
                Palabra = Palabra.ToUpper();
                //creo el arreglo con longitud equivalente a la palabra obtenida
                palabraArray = new String[Palabra.Length, 2];
                int contador = 0;
                foreach (clsJugador j in Jugadores)
                {
                    j.SinAcertar   = 0;
                    j.FueraDeJuego = false;
                }
                foreach (char i in Palabra)
                {
                    palabraArray[contador, 0] = i.ToString();
                    palabraArray[contador, 1] = null;
                    contador++;
                }
                ganador = null;
            }
        }//genera  una nueva palabra para palabraArray y vuelve las chances perdidas por los jugadores  a cero
Ejemplo n.º 2
0
        public static Respuesta EvaluaSiguientePaso(Nodo _NodoActual, List <string> _RespuestaEnLista)
        {
            switch (_NodoActual.TipoNodo)
            {
            case Nodo.TiposNodo.Pregunta:
            {
                int SiguientePaso;         //preparo el objeto respuesta
                // Respuesta MiRespuesta = new Respuesta();TODO: esto sobra, ¿no?

                List <string> TextoDevuelto = new List <string>();
                foreach (int key in _NodoActual.SiguientesPasos.Keys)
                {
                    if (_NodoActual.SiguientesPasos[key].Any(s => _RespuestaEnLista.Contains(s.ToUpper())))
                    {
                        //Console.WriteLine("Ocurrencia localizada en clave: " + key.ToString()); //DEBUG
                        SiguientePaso = key;
                        return(new Respuesta(SiguientePaso, TextoDevuelto, _NodoActual));
                    }
                }
                Console.WriteLine("No te he entendido");
                return(new Respuesta(0, TextoDevuelto, _NodoActual));
            }

            case Nodo.TiposNodo.ConsultaNombre:
            {
                int           PasoActual    = _NodoActual.IdNodo;
                int           SiguientePaso = _NodoActual.IdNodo; //preparo el objeto respuesta (si no hay éxito en la respuesta, me voy a quedar donde estoy para que repita la pregunta)
                List <string> MensajeVuelta = new List <string>();
                // Respuesta MiRespuesta = new Respuesta();TODO: esto sobra, ¿no?

                List <string> ListaNombres = Presencia.ListaHabitantes();        //obtenemos la lista de habitantes EN MAYÚSCULAS


                foreach (string Palabra in _RespuestaEnLista)         //¿está algún nombre de la respuesta en la lista?
                {
                    if (ListaNombres.Contains(Palabra.ToUpper()))
                    {
                        MensajeVuelta.Add(Palabra);
                        SiguientePaso = _NodoActual.SiguientesPasos.First().Key;         //si hay un nombre válido voy al (único) siguiente paso que haya
                    }
                }

                if (SiguientePaso == PasoActual)
                {        //no encontró respuesta, vuelve a repetir la pregunta
                    return(new Respuesta(PasoActual, new List <string>(), _NodoActual));
                }
                else
                {
                    foreach (string nombre in MensajeVuelta)
                    {
                        _NodoActual.ArgumentosAccion.Add((object)nombre); //devuelve como argumentos para la acción siguiente la lista de nombres
                        Console.WriteLine(nombre);                        //DEBUG: encontró respuesta
                    }

                    return(new Respuesta(SiguientePaso, MensajeVuelta, _NodoActual));
                }
            }

            case Nodo.TiposNodo.Orden:
            {
                Environment.Exit(-1);                                       //Cerramos la aplicación //TODO: MEJORAR ESTO.....
                return(new Respuesta(0, new List <string>(), _NodoActual)); // NUNCA VA A LLEGAR AQUÍ
            }
            }
            return(new Respuesta(0, new List <string>(), _NodoActual)); //TODO: quitar esto de aquí
        }