}//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
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í }