// Cierra el formulario y abre FormGestorPreguntes private void pictureBoxSiguiente_Click(object sender, EventArgs e) { // Si el contenido es correcto if (Metodo.revisarContenido(textBoxContenido.Text)) { // Guarda el contenido en este planeta this.planeta.contenido = textBoxContenido.Text; // Instancia un formulario con el planeta editado FormGestorPreguntes gestorPreguntes = new FormGestorPreguntes(this.planeta); // Esconde este formulario this.Hide(); // Muestra el formulario gestorPreguntes.ShowDialog(); // Cierra este formulario this.Close(); } else { MessageBox.Show("Introdueix un contingut per continuar", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); textBoxContenido.Focus(); } }
/// <summary> /// Devuelve true si todos los planetas y personajes tienen un contenido valido /// </summary> /// <returns></returns> private bool ContenidoExistente() { // Guarda el resultado de la revision bool planetasOk = false, personajesOK = false, retorno = false; // recorren bucles byte i = 0, j = 0; // Recorre planetas while (i < MAX_PLANETAS) { // Si algun planeta no tiene un contenido valido if (!Metodo.revisarContenido(planetas[i].contenido)) { // La variable se niega y sale del bucle planetasOk = false; i = MAX_PLANETAS; } else { planetasOk = true; } i++; } // Recorre personajes while (j < MAX_PERSONAJES) { if (!(Metodo.revisarContenido(listaPersonajes[j].nom) && Metodo.revisarContenido(listaPersonajes[j].frase) && Metodo.revisarContenido(Personaje.rutaImagen1) && Metodo.revisarContenido(Personaje.rutaImagen2) && Metodo.revisarContenido(Personaje.rutaImagen3))) { // La variable se niega y sale del bucle personajesOK = false; i = MAX_PLANETAS; } else { personajesOK = true; } j++; } // si las dos comprobaciones anteriores han ido bien if (planetasOk && personajesOK) { // El retorno sera true retorno = true; } // Retorna el retorno return(retorno); }
/*** * ██████╗ ██████╗ ███╗ ██╗███████╗████████╗██████╗ ██╗ ██╗ ██████╗████████╗ ██████╗ ██████╗ ███████╗███████╗ * ██╔════╝██╔═══██╗████╗ ██║██╔════╝╚══██╔══╝██╔══██╗██║ ██║██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗██╔════╝██╔════╝ * ██║ ██║ ██║██╔██╗ ██║███████╗ ██║ ██████╔╝██║ ██║██║ ██║ ██║ ██║██████╔╝█████╗ ███████╗ * ██║ ██║ ██║██║╚██╗██║╚════██║ ██║ ██╔══██╗██║ ██║██║ ██║ ██║ ██║██╔══██╗██╔══╝ ╚════██║ * ╚██████╗╚██████╔╝██║ ╚████║███████║ ██║ ██║ ██║╚██████╔╝╚██████╗ ██║ ╚██████╔╝██║ ██║███████╗███████║ * ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ * */ //Recibe un planeta desde menu principal public FormGestorContingut(Planeta planeta) { InitializeComponent(); // Asigna el planeta recibido por parámetro al planeta de este form this.planeta = planeta; // Si el planeta recibido tiene un contenido if (Metodo.revisarContenido(planeta.contenido)) { // lo muestra en el textbox textBoxContenido.Text = planeta.contenido; } }
/*** * ██████╗ ██████╗ ███╗ ██╗███████╗████████╗██████╗ ██╗ ██╗ ██████╗████████╗ ██████╗ ██████╗ ███████╗███████╗ * ██╔════╝██╔═══██╗████╗ ██║██╔════╝╚══██╔══╝██╔══██╗██║ ██║██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗██╔════╝██╔════╝ * ██║ ██║ ██║██╔██╗ ██║███████╗ ██║ ██████╔╝██║ ██║██║ ██║ ██║ ██║██████╔╝█████╗ ███████╗ * ██║ ██║ ██║██║╚██╗██║╚════██║ ██║ ██╔══██╗██║ ██║██║ ██║ ██║ ██║██╔══██╗██╔══╝ ╚════██║ * ╚██████╗╚██████╔╝██║ ╚████║███████║ ██║ ██║ ██║╚██████╔╝╚██████╗ ██║ ╚██████╔╝██║ ██║███████╗███████║ * ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ * */ // Constructor del formulario public FormGestorPreguntes(Planeta planeta) { InitializeComponent(); this.planeta = planeta; // Si el planeta recibido ya contiene preguntas, se agregan a la lista try { for (int i = 0; i < planeta.preguntas.Count; i++) { // Añade las preguntas a la lista listaPreguntas.Add(planeta.preguntas[i]); // Borra la primera pregunta si viene vacía if (!Metodo.revisarContenido(listaPreguntas[0].pregunta)) { listaPreguntas.RemoveAt(0); } } refrescarListBox(); }catch (Exception) {} }
/// <summary> /// Hace dos cosas: /// Da color a aquellos planetas que contengan almenos 1 pregunta /// Al cambiar de idioma cambia la imagen de la bandera correspondiente /// </summary> /// <param name="idioma"></param> private void colorPlanetas(int idioma) { switch (idioma) { case 0: // Cambia la imagen y hace el control visible pictureBoxBandera.Image = SerializarJSON.Properties.Resources.cat; pictureBoxBandera.Visible = true; if (planetas[0].preguntas.Count > 0 && Metodo.revisarContenido(planetas[0].preguntas[0].pregunta)) { // Cambia el planeta a color pictureBoxPlaneta1.Image = SerializarJSON.Properties.Resources.Planeta1true; } else { // Quita el color del planeta pictureBoxPlaneta1.Image = SerializarJSON.Properties.Resources.Planeta1false; } if (planetas[1].preguntas.Count > 0 && Metodo.revisarContenido(planetas[1].preguntas[0].pregunta)) { // Cambia el planeta a color pictureBoxPlaneta2.Image = SerializarJSON.Properties.Resources.planeta2true; } else { // Quita el color del planeta pictureBoxPlaneta2.Image = SerializarJSON.Properties.Resources.planeta2false; } if (planetas[2].preguntas.Count > 0 && Metodo.revisarContenido(planetas[2].preguntas[0].pregunta)) { // Cambia el planeta a color pictureBoxPlaneta3.Image = SerializarJSON.Properties.Resources.planeta3true; } else { // Quita el color del planeta pictureBoxPlaneta3.Image = SerializarJSON.Properties.Resources.planeta3false; } break; case 1: // Cambia la imagen y hace el control visible pictureBoxBandera.Image = SerializarJSON.Properties.Resources.esp; pictureBoxBandera.Visible = true; if (planetas[3].preguntas.Count > 0 && Metodo.revisarContenido(planetas[3].preguntas[0].pregunta)) { // Cambia el planeta a color pictureBoxPlaneta1.Image = SerializarJSON.Properties.Resources.Planeta1true; } else { // Quita el color del planeta pictureBoxPlaneta1.Image = SerializarJSON.Properties.Resources.Planeta1false; } if (planetas[4].preguntas.Count > 0 && Metodo.revisarContenido(planetas[4].preguntas[0].pregunta)) { // Cambia el planeta a color pictureBoxPlaneta2.Image = SerializarJSON.Properties.Resources.planeta2true; } else { // Quita el color del planeta pictureBoxPlaneta2.Image = SerializarJSON.Properties.Resources.planeta2false; } if (planetas[5].preguntas.Count > 0 && Metodo.revisarContenido(planetas[5].preguntas[0].pregunta)) { // Cambia el planeta a color pictureBoxPlaneta3.Image = SerializarJSON.Properties.Resources.planeta3true; } else { // Quita el color del planeta pictureBoxPlaneta3.Image = SerializarJSON.Properties.Resources.planeta3false; } break; case 2: // Cambia la imagen y hace el control visible pictureBoxBandera.Image = SerializarJSON.Properties.Resources.eng; pictureBoxBandera.Visible = true; if (planetas[6].preguntas.Count > 0 && Metodo.revisarContenido(planetas[6].preguntas[0].pregunta)) { // Cambia el planeta a color pictureBoxPlaneta1.Image = SerializarJSON.Properties.Resources.Planeta1true; } else { // Quita el color del planeta pictureBoxPlaneta1.Image = SerializarJSON.Properties.Resources.Planeta1false; } if (planetas[7].preguntas.Count > 0 && Metodo.revisarContenido(planetas[7].preguntas[0].pregunta)) { // Cambia el planeta a color pictureBoxPlaneta2.Image = SerializarJSON.Properties.Resources.planeta2true; } else { // Quita el color del planeta pictureBoxPlaneta2.Image = SerializarJSON.Properties.Resources.planeta2false; } if (planetas[8].preguntas.Count > 0 && Metodo.revisarContenido(planetas[8].preguntas[0].pregunta)) { // Cambia el planeta a color pictureBoxPlaneta3.Image = SerializarJSON.Properties.Resources.planeta3true; } else { // Quita el color del planeta pictureBoxPlaneta3.Image = SerializarJSON.Properties.Resources.planeta3false; } break; } }
/* EVENTOS * ███████╗██╗ ██╗ ███████╗ ███╗ ██╗████████╗ ██████╗ ███████╗ * ██╔════╝██║ ██║ ██╔════╝ ████╗ ██║╚══██╔══╝██╔═══██╗ ██╔════╝ * █████╗ ██║ ██║ █████╗ ██╔██╗ ██║ ██║ ██║ ██║ ███████╗ * ██╔══╝ ╚██╗ ██╔╝ ██╔══╝ ██║╚██╗██║ ██║ ██║ ██║ ╚════██║ * ███████╗ ╚████╔╝ ███████╗ ██║ ╚████║ ██║ ╚██████╔╝ ███████║ * ╚══════╝ ╚═══╝ ╚══════╝ ╚═╝ ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝ */ // Guardar y añadir a la listbox private void pictureBoxGuardar_Click(object sender, EventArgs e) { // Guarda las respuestas de los textbox en una lista para ser verificadas List <String> respuestasTextBoxs = new List <string>(); respuestasTextBoxs.Add(textBoxResposta1.Text); respuestasTextBoxs.Add(textBoxResposta2.Text); if (nRespostes == 3) { respuestasTextBoxs.Add(textBoxResposta3.Text); } else if (nRespostes == 4) { respuestasTextBoxs.Add(textBoxResposta3.Text); respuestasTextBoxs.Add(textBoxResposta4.Text); } bool formularioCorrecto = false; // Comprueba que se haya introducido una pregunta if (Metodo.revisarContenido(textBoxPregunta.Text)) { // Comprueba que no haya ninguna pregunta repetida if (Metodo.preguntaRepetida(textBoxPregunta.Text, listaPreguntas)) { // Comprueba que no falte por marcar algun radioButton if (radioCheck()) { // Comprueba que se hayan introducido las respuestas if (Metodo.revisarContenido(respuestasTextBoxs)) { formularioCorrecto = true; } else { //Error MessageBox.Show("Introdueix la resposta que falta", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { //Error MessageBox.Show("Aquesta pregunta ja existeix", "Pregunta duplicada", MessageBoxButtons.OK, MessageBoxIcon.Error); textBoxPregunta.Focus(); } } else { //Error MessageBox.Show("Escriu una pregunta", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); textBoxPregunta.Focus(); } // Si se han pasado todas las comprobaciones if (formularioCorrecto) { // Lista para guardar 4 respuestas List <Respuesta> listaRespuestas = new List <Respuesta>(); // Vacia la lista de respuestas listaRespuestas.Clear(); // Instancia tantas respuestas como textBoxs haya activado el usuario // Después las añade a la lista Respuesta a = new Respuesta(textBoxResposta1.Text, radioButtonA.Checked); Respuesta b = new Respuesta(textBoxResposta2.Text, radioButtonB.Checked); listaRespuestas.Add(a); listaRespuestas.Add(b); if (nRespostes == 3) { Respuesta c = new Respuesta(textBoxResposta3.Text, radioButtonC.Checked); listaRespuestas.Add(c); } else if (nRespostes == 4) { Respuesta c = new Respuesta(textBoxResposta3.Text, radioButtonC.Checked); Respuesta d = new Respuesta(textBoxResposta4.Text, radioButtonD.Checked); listaRespuestas.Add(c); listaRespuestas.Add(d); } // Instancia pregunta y la añade a la lista de preguntas Pregunta pregunta = new Pregunta(textBoxPregunta.Text, listaRespuestas, !radioButtonFacil.Checked); listaPreguntas.Add(pregunta); //Añade al listBox el nuevo contenido refrescarListBox(); //Limpia todos los campos para rellenar de nuevo el formulario limpiarCampos(); } }