public void ObtenirConectatsResposta(string missatge) { try { DelegadoParaEscribir delegado = new DelegadoParaEscribir(PosaDataGriedView); LlistaConectats.Invoke(delegado, new object[] { missatge }); } catch (ArgumentOutOfRangeException) { MessageBox.Show("El missatge es incorrecte"); } LlistaConectats.ClearSelection(); }
private void EnableLogIn() //Habilita botones cuando usuario inicia sesion { DelegadoParaLogIn delegadoLogIn = new DelegadoParaLogIn(LogIn); text.Invoke(delegadoLogIn); empezar.Invoke(delegadoLogIn); AddPlayer.Invoke(delegadoLogIn); TextMessage.Invoke(delegadoLogIn); nombre.Invoke(delegadoLogIn); pass.Invoke(delegadoLogIn); //label6.Text = "Has iniciado sesión como: " + conectado; //Lo quito de aqui por el tema del excepcion cross thread DelegadoParaEscribir delegado = new DelegadoParaEscribir(PonNombre); label6.Invoke(delegado, new object[] { conectado }); //mensajes.Items.Add("Has iniciado sesión como : " + conectado); DelegadoParaMensajes delegadoMensajes = new DelegadoParaMensajes(PonMensaje); mensajes.Invoke(delegadoMensajes, new object[] { conectado }); }
// //Función para atender las peticiones del servidor. // private void AtenderServidor() { while (true) { byte[] msg2 = new byte[80]; server.Receive(msg2); string mssg = Encoding.ASCII.GetString(msg2).Split('\0')[0]; string[] trozos = mssg.Split('-'); int codigo = Convert.ToInt32(trozos[0]); string mensaje = trozos[1]; int cont_f = formularios.Count; switch (codigo) { case 1: //LOGIN string[] piezas = mensaje.Split('/'); int code = Convert.ToInt32(piezas[0]); if (code == 11) { MessageBox.Show("El usuario y la contraseña no coinciden. Por favor intente INCIAR SESIÓN de nuevo."); this.Close(); } else { DelegadoParaEscribir delegado = new DelegadoParaEscribir(PonConectado); matriz.Invoke(delegado, new object[] { code, piezas }); } break; case 2: //ELIMINAR MessageBox.Show(mensaje); break; case 4: // El usuario invitado recibe la invitacion y envia su respuesta correspondiente string[] msg_form = mensaje.Split('/'); forms_s = Convert.ToInt32(msg_form[1]); DialogResult resultado; resultado = MessageBox.Show(msg_form[0] + " te ha enviado una invitación.", "Invitación", MessageBoxButtons.OKCancel); if (resultado == DialogResult.OK) { string message = "5/" + msg_form[0] + "/0"; // + "/" + nform byte[] msg = System.Text.Encoding.ASCII.GetBytes(message); server.Send(msg); } else { string message = "5/" + msg_form[0] + "/1"; byte[] msg = System.Text.Encoding.ASCII.GetBytes(message); server.Send(msg); } break; case 5: //El usuario que ha invitado recibe si el invitado ha aceptado o no string[] pieces = mensaje.Split('/'); int codigoAcepta = Convert.ToInt32(pieces[1]); if (codigoAcepta == 0) { MessageBox.Show(pieces[0] + " ha ACEPTADO tu invitación"); //invitado = pieces[0]; } else { MessageBox.Show(pieces[0] + " ha RECHAZADO tu invitación"); } break; case 6: //Recibe los mensajes del chat pieces = mensaje.Split('/'); DelegadoParaChat delegadoChat = new DelegadoParaChat(PonMensaje); listBox1.Invoke(delegadoChat, new object[] { pieces }); break; case 7: //Pone en marcha los formularios de la partida string[] jugadores = mensaje.Split('/'); jug1 = jugadores[0]; jug2 = jugadores[1]; ThreadStart ts = delegate { PonerEnMarchaFormulario(); }; Thread T = new Thread(ts); T.Start(); break; case 8: //Recibe la tirada y la pone en el tablero del otro jugador string[] jugada = mensaje.Split('/'); int nform = Convert.ToInt32(jugada[0]); int jug = Convert.ToInt32(jugada[1]); int fila = Convert.ToInt32(jugada[2]); int columna = Convert.ToInt32(jugada[3]); CheckForIllegalCrossThreadCalls = false; formularios[nform].TomaRespuesta(jug, fila, columna); break; case 9: //Recibe el ganador string[] ganadors = mensaje.Split('/'); string ganador = (ganadors[0]); int nform_g = Convert.ToInt32(ganadors[1]); formularios[nform_g].TomaGanador(ganador); break; case 10: //Ver jugadores con los que has jugado EF.PonInvokeJugador(mensaje); break; case 11: //Ver todos los jugadores registrados en la base de datos EF.PonInvokeTodosJugadores(mensaje); break; case 12: //Ver jugadores con quien has jugado EF.PonInvokePartidas(mensaje); break; case 13: //Ver las partidas que ha ganado un determiando jugador EF.PonInvokeGanadas(mensaje); break; } } }
private void FormPartida_Load(object sender, EventArgs e) { DelegadoParaEscribir delegado = new DelegadoParaEscribir(PosaComponentsEquips); nomsequip1.Invoke(delegado, new object[] { equip }); }
//////////////////////////////////////// ATENDER SERVER///////////////////////////////////////////// public void AtenderServidor() { while (true) { //Recibimos mensaje del servidor byte[] msg2 = new byte[80]; server.Receive(msg2); string[] trozos = Encoding.ASCII.GetString(msg2).Split('/'); //if (trozos[0].GetType() == typeof(string)) // return; //int codigo = Convert.ToInt32(trozos[0]); int codigo; bool parse = int.TryParse(trozos[0], out codigo); if (!parse) { return; } string mensaje = trozos[1].Split('\0')[0]; switch (codigo) { case 1: // Respuesta a partidas ganadas por un jugador x pg.setrespuesta(mensaje); break; case 2: // Ganadores de partidas de >10min gm = new Ganadores10min(); gm.setLista(mensaje); gm.ShowDialog(); break; case 3: // Respuesta a la hora y la fecha de una partida hf.setrespuesta(mensaje); break; case 4: // Respuesta a partidas un día x gd.setrespuesta(mensaje); break; case 7: // Respuesta a lista de conectados string[] vector = new string[5]; vector = mensaje.Split(','); ShowConectados.RowHeadersVisible = false; ShowConectados.ColumnHeadersVisible = false; ShowConectados.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; ShowConectados.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; ShowConectados.RowCount = vector.Length; ShowConectados.ColumnCount = 1; int i = 0; while (i < vector.Length) { if (i == 0) { ShowConectados.Rows[i].Cells[0].Value = "Número de conectados: " + vector[i]; } else { ShowConectados.Rows[i].Cells[0].Value = vector[i]; } i++; } break; case 6: // Respuesta servicios realizados { servicios_rec.Text = "Número total de servicios: " + mensaje; DelegadoParaEscribir delegado = new DelegadoParaEscribir(PonContador); servicios_rec.Invoke(delegado, new object[] { mensaje }); break; } case 8: //He enviado invitación correctamente MessageBox.Show("Invitación enviada correctamente"); break; case 9: //Recibo invitación //Puedo rechazar o aceptar DialogResult dialogResult = MessageBox.Show("Has recibido una invitación de " + mensaje + ", aceptas?", " Invitación a partida ", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { string msg1 = "6/" + mensaje + "-" + "yes"; byte[] msg = System.Text.Encoding.ASCII.GetBytes(msg1); //byte[] msg = System.Text.Encoding.ASCII.GetBytes("6/"); estaEnSala = true; server.Send(msg); } else if (dialogResult == DialogResult.No) { string msg1 = "6/" + mensaje + "-" + "no"; byte[] msg = System.Text.Encoding.ASCII.GetBytes(msg1); server.Send(msg); } break; case 10: { var result = mensaje.Split(','); if (result[1] == "yes") { estaEnSala = true; } else { MessageBox.Show(result[0] + " ha rechazado tu invitación"); } break; } case 11: { if (chat == null) { break; } var result = mensaje.Split(','); if (chat.chatMensajes == null) { chat.chatMensajes = new ListBox(); } chat.chatMensajes.Items.Add(result[0] + ": " + result[1]); break; } case 12: { //Leemos el indice de nestro player var result = mensaje.Split(','); for (int j = 10; j >= 0; j--) { label3.BackColor = Color.White; label3.ForeColor = Color.Black; label3.Text = "La partida empieza en: \n" + j; Thread.Sleep(1000); } //byte[] player = new byte[80]; //server.Receive(player); //Start game juego = new Juego(Convert.ToInt32(result[1])); juego.setServer(server); juego.setPlayer(Convert.ToInt32(result[0])); juego.ShowDialog(); break; } case 13: { // Es el admin button1.Enabled = true; break; } case 14: { //Cambio de dirección de un usuario var result = mensaje.Split(','); juego.direccionesJugadores[Convert.ToInt32(result[0])] = Convert.ToInt32(result[1]); break; } } } }
private void AtendreServidor() { while (true) //bucle infinit { //Rebem missatge del servidor byte[] msg2 = new byte[80]; server.Receive(msg2); // veiem quin codi de resposta hem rebut string[] parts = Encoding.ASCII.GetString(msg2).Split('/'); int codi = Convert.ToInt32(parts[0]); string missatge = parts[1].Split('\0')[0]; // Guardem la resposta switch (codi) { case 1: // Log in EntrarResposta(missatge); break; case 2: // Registrar RegistrarResposta(missatge); break; case 3: // Nom guanyadors partida NomGuanyadorsPartidaResposta(missatge); break; case 4: // Partida maxim punts PartidaMaximPuntsJugadorResposta(missatge, NomJugador); break; case 5: // Persones que no ha guanyat PersonesQueNoHaGuanyatResposta(missatge); break; case 6: // Numero de serveis NumeroServeisResposta(missatge); break; case 7: // Notificacio llista de conectats ObtenirConectatsResposta(missatge); break; // MessageBox.Show(missatge); case 8: // Notificació on et conviden a jugar una partida MostrarPropostaPartida(missatge); break; case 9: // Resposta a la petició de convidar a una partida string Convidat = ConvidatsNomResposta(missatge); ID_Partida = Convert.ToInt32(ConvidatsIDResposta(missatge)); if (Convidat != "NO") { DelegadoParaEscribir delegadoConvidats = new DelegadoParaEscribir(EscriureNomsConvidats); PersonesConvidadesLabel.Invoke(delegadoConvidats, new object[] { Convidat }); DelegadoParaEscribir delegadoID = new DelegadoParaEscribir(EscriureIDPartida); ID_label.Invoke(delegadoID, new object[] { Convert.ToString(ID_Partida) }); } //PropostaPartidaResposta(missatge); break; case 10: string nomsequip = EquipsResposta(missatge); ThreadStart ts = delegate { ObrirPantallaPartida(nomsequip); }; Thread T = new Thread(ts); T.Start(); break; case 11: FormsPartida[0].EscriuXat(missatge); break; } } }
private void AtenderServidor() { while (true) { //Recibimos la respuesta del servidor byte[] msg2 = new byte[80]; server.Receive(msg2); string mensajerecibido = Encoding.ASCII.GetString(msg2); string[] trozos = Encoding.ASCII.GetString(msg2).Split('/'); int codigo = Convert.ToInt32(trozos[0]); string mensaje = trozos[1].Split('\0')[0]; string mensaje2; DialogResult result; switch (codigo) { case 1: if (mensaje == "SI") { MessageBox.Show("El usuario: " + Username.Text + ", se ha registrado correctamente."); } else { MessageBox.Show("El usuario: " + Username.Text + ", ya está cogido."); } break; case 2: mensaje2 = trozos[2].Split('\0')[0]; if (mensaje == "SI") { if (mensaje2 == "El usuario: " + Username.Text + ", se ha anadido correctamente a la lista") { MessageBox.Show(mensaje2); registered = true; //DelegadoParaAbrirMain delegado1 = new DelegadoParaAbrirMain (AbrirMain); //this.invoke(delegado1, new object [] {Username.Text}); } else { MessageBox.Show(mensaje2); registered = false; } } else { MessageBox.Show(mensaje2); } break; case 3: MessageBox.Show(mensaje); break; case 4: MessageBox.Show(mensaje); break; case 5: MessageBox.Show(mensaje); break; case 6: //Recibimos notificación int nm = Convert.ToInt32(mensaje); if (nm != 0) { ListaConectados.Rows.Clear(); NumConn.Text = mensaje; int i; for (i = 2; i < nm + 2; i++) { mensaje2 = trozos[i].Split('\0')[0]; DelegadoParaEscribir delegado = new DelegadoParaEscribir(PonTabla); ListaConectados.Invoke(delegado, new object [] { mensaje2 }); } ListaConectados.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); } else { NumConn.Text = "0"; } break; case 7: int id = Convert.ToInt32(mensaje); mensaje2 = trozos[2].Split('\0')[0]; if (id != -1) { result = (MessageBox.Show("Hola, " + Username.Text + ": " + mensaje2 + " te ha invitado a jugar a la partida " + id + ", ¿aceptas?", "aceptar", MessageBoxButtons.YesNo)); switch (result) { case DialogResult.Yes: string envio = "8/" + mensaje + "/SI"; // Enviamos al servidor el username y password tecleadas. byte[] msg = System.Text.Encoding.ASCII.GetBytes(envio); server.Send(msg); break; case DialogResult.No: envio = "8/" + mensaje + "/NO"; // Enviamos al servidor el username y password tecleadas. msg = System.Text.Encoding.ASCII.GetBytes(envio); server.Send(msg); break; } } else { MessageBox.Show(mensaje2); } break; case 8: id = Convert.ToInt32(mensaje); ID = id; mensaje2 = trozos[2].Split('\0')[0]; string mensaje3 = trozos[3].Split('\0')[0]; if (mensaje3 == "SI") { MessageBox.Show(mensaje2 + " ha aceptado a jugar la partida " + id); cont = cont + 1; juegan = juegan + 1; } else { MessageBox.Show(mensaje3); cont = cont + 1; } if (cont == contador) { invited = true; contador = 0; cont = 0; } break; case 9: autor = mensaje; mensaje2 = trozos[2].Split('\0')[0]; RecibirChat(autor, mensaje2); break; case 10: //Recibimos notificación int n = Convert.ToInt32(mensaje); //recibimos el numero de partidas disponibles if (n != 0) { ListaPartidas.Rows.Clear(); partidasBox.Text = mensaje; int i; for (i = 2; i < n + 2; i++) { mensaje2 = trozos[i].Split('\0')[0]; DelegadoParaEscribir delegado = new DelegadoParaEscribir(PonTabla2); ListaPartidas.Invoke(delegado, new object[] { mensaje2 }); } ListaPartidas.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); } else { partidasBox.Text = "0"; } break; } } }
private void AtenderServidor() { while (true) { //Recibimos la respuesta del servidor byte[] msg2 = new byte[80]; server.Receive(msg2); string[] trozos = Encoding.ASCII.GetString(msg2).Split('/'); int codigo = Convert.ToInt32(trozos[0]); string respuesta = trozos[1].Split('\0')[0]; switch (codigo) { case 0: //Iniciar sesión if (respuesta == "correcto") { if (!registrado) { DelegadoParaEscribir delegado = new DelegadoParaEscribir(BorraUsuario); DelegadoParaEscribir delegado1 = new DelegadoParaEscribir(BorraPass); DelegadoCambioColor delegado2 = new DelegadoCambioColor(Cambiarcolor); MessageBox.Show("Credenciales correctas"); Invoke(delegado2); registrado = true; usuario.Invoke(delegado, new object[] { "" }); password.Invoke(delegado1, new object[] { "" }); } } else if (respuesta == "conectado") { MessageBox.Show("Ya estás conectado al servidor"); } else { MessageBox.Show("Error al iniciar sesión"); } break; case 1: //Consulta 1 MessageBox.Show("La primera vez que jugaron fue: " + respuesta); break; case 2: //Consulta 2 MessageBox.Show("La experiencia del jugador que ganó la última partida es: " + respuesta + " puntos"); break; case 3: //Consulta 3 MessageBox.Show("El jugador " + textBox1.Text + " ha ganado " + respuesta + " partidas"); break; case 4: //Registro if (respuesta == "correcto") { MessageBox.Show("Te has dado de alta correctamente en la base de datos"); } else if (respuesta == "ya registrado") { MessageBox.Show("Ya hay un usuario con ese nombre de usuario"); } else { MessageBox.Show("Se ha producido un error. Vuelve a intentarlo."); } break; case 5: //Desconectar no necesita código porque no recibe nada //Se desconecta el cliente atender.Abort(); server.Shutdown(SocketShutdown.Both); server.Close(); this.registrado = false; listBox1.Items.Clear(); MessageBox.Show("Desconectado correctamente"); break; case 6: //Lista de Conectados List <Usuario> ListaUsuarios = new List <Usuario>(); //Adaptamos la respuesta a nuestro formato de datos (Lista) string[] prov = respuesta.Split('_'); int i = 0; while (i < prov.Length - 1) { Usuario u = new Usuario(); u.nombre = prov[i]; u.socket = Convert.ToInt32(prov[i + 1]); ListaUsuarios.Add(u); i = i + 2; } DelegadoParaBorrar delegado3 = new DelegadoParaBorrar(BorrarTabla1); listBox1.Invoke(delegado3); //tablaUsuarios.Rows.Clear(); DelegadoParaAñadir delegado4 = new DelegadoParaAñadir(AñadirElementos1); DelegadoParaTabla delegado6 = new DelegadoParaTabla(AñadirATabla); tablaUsuarios.Invoke(delegado6, new object[] { ListaUsuarios }); for (int j = 0; j < ListaUsuarios.Count; j++) { listBox1.Invoke(delegado4, new object [] { ListaUsuarios[j].nombre }); //tablaUsuarios.Rows.Add(ListaUsuarios[j].nombre, ListaUsuarios[j].socket); } break; case 7: //Recibir Socket this.user.socket = Convert.ToInt32(respuesta); break; case 8: //Invitacion a jugar conmigo if (MessageBox.Show("¡El usuario " + respuesta + " te está invitando a una partida privada! ¿Aceptas?", "Invitación!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { string respuesta2 = "9/" + this.user.nombre + "/" + respuesta + "/si"; Enviar(respuesta2); } else if (MessageBox.Show("¡El usuario " + respuesta + " te está invitando a una partida privada! ¿Aceptas?", "Invitación!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { string respuesta2 = "9/" + this.user.nombre + "/" + respuesta + "/no"; Enviar(respuesta2); } break; case 9: //Respuesta a la invitación string[] confirmacion = respuesta.Split('_'); if (confirmacion[1] == "si") { MessageBox.Show("El usuario " + confirmacion[0] + " ha aceptado la invitacion!"); } else if (confirmacion[1] == "no") { MessageBox.Show("El usuario " + confirmacion[0] + " ha rechazado la invitacion!"); } break; case 10: //Mensaje recibido en el chat string[] mensaje_recibido = respuesta.Split('_'); DelegadoParaAñadir delegado5 = new DelegadoParaAñadir(AñadirElementos2); listBox2.Invoke(delegado5, new object[] { (mensaje_recibido[0] + " : " + mensaje_recibido[1]) }); if (listBox2.Items.Count >= 10) //Establecemos un numero maximo de mensajes que podemos tener en el chat { listBox2.Items.RemoveAt(0); } break; } } }
private void AtenderServidor() { while (true) { //Recibimos mensaje del servidor byte[] msg2 = new byte[80]; server.Receive(msg2); string msg5 = Encoding.ASCII.GetString(msg2).Split('\0')[0]; //MessageBox.Show("mensaje recibido " + msg5 + nombre + "finmensaje"); string[] trozos = msg5.Split('/'); int codigo = Convert.ToInt32(trozos[0]); string mensaje = trozos[1]; string mensajevuelta; string mensajevuelta2; string mensajecrear; string Nombreconv; switch (codigo) { case 1: // LogIn DelegadoParaMostrar d6 = new DelegadoParaMostrar(VisiblelblCase1); label3.Invoke(d6, new Object[] {}); DelegadoParaMostrar d7 = new DelegadoParaMostrar(VisibleTxtCase1); Fecha.Invoke(d7, new Object[] {}); DelegadoParaMostrar d8 = new DelegadoParaMostrar(VisibleBotonCase1); Ganador.Invoke(d8, new Object[] {}); MessageBox.Show("Estas dentro: " + mensaje); break; case 2: // Edad media de los ganadores con ese color MessageBox.Show("Edad media: " + mensaje); break; case 3: // Ganador en esa fecha MessageBox.Show("El ganador es: " + mensaje); break; case 4: // Tanto por ciento de partidas ganadas MessageBox.Show("Tanto por ciento de partidas ganadas con ese color es: " + mensaje); break; case 5: // listadeconectados //MessageBox.Show("Se ha conectado lista: " + mensaje); string[] partes = Encoding.ASCII.GetString(msg2).Split('/'); string mensajefinal = partes[1].Split('\0')[0]; string[] mensaje2 = mensajefinal.Split('|'); DelegadoParaEscribir dele = new DelegadoParaEscribir(EscribeConectados); dataGridView1.Invoke(dele, new Object[] { mensaje2 }); break; case 6: //Muestra si se ha aceptado la peticion mensajevuelta = trozos[1].Split('\0')[0]; acepta = trozos[2].Split('\0')[0]; DelegadoParaMostrar d9 = new DelegadoParaMostrar(VisiblePanelIf); DelegadoParaEscribir2 d10 = new DelegadoParaEscribir2(EscribeBox2); if ((mensajevuelta == "Acepta") && (acepta != nombre.Text)) { panel2.Invoke(d9, new Object[] {}); textBox2.Invoke(d10, new Object[] { acepta + " acepta la inviacion" }); } else if ((mensajevuelta == "Rechazar") && (acepta != nombre.Text)) { panel2.Invoke(d9, new Object[] { }); textBox2.Invoke(d10, new Object[] { acepta + " rechaza la inviacion" }); } else { MessageBox.Show("Yo no me puedo autoinvitar"); } break; case 7: //Invitar mensajevuelta = trozos[1].Split('\0')[0]; NombreInvitador = trozos[2].Split('\0')[0]; DelegadoParaMostrar d11 = new DelegadoParaMostrar(VisibleCase7); DelegadoParaEscribir2 d12 = new DelegadoParaEscribir2(EscribeBox3); DelegadoParaMostrar d13 = new DelegadoParaMostrar(NoVisiblePanel1); DelegadoParaMostrar d17 = new DelegadoParaMostrar(VisiblePanel); if (mensajevuelta == "Invitado") { tablero.Invoke(d17, new Object[] { }); panel1.Invoke(d11, new Object[] { }); InvitadortextBox3.Invoke(d12, new Object[] { NombreInvitador }); } else { tablero.Invoke(d17, new Object[] { }); panel1.Invoke(d13, new Object[] { }); } break; case 8: // Recibo una frase chat mensajevuelta = trozos[1].Split('\0')[0]; Nombreconv = trozos[2].Split('\0')[0]; DelegadoParaEscribir2 d16 = new DelegadoParaEscribir2(EscribeChat); Chatlbl.Invoke(d16, new Object[] { Chatlbl.Text + Nombreconv + ":" + mensajevuelta + "\n" }); break; case 9: //Mostramos CHAT id = idposible; mensajevuelta = trozos[1].Split('\0')[0]; mensajevuelta2 = trozos[2].Split('\0')[0]; string[] mensajeinvitados = mensajevuelta2.Split('|'); if (mensajevuelta == "crear") { DelegadoParaMostrar d14 = new DelegadoParaMostrar(CrearChatVisible); chatlabel.Invoke(d14, new Object[] { }); DelegadoParaMostrarLabel d18 = new DelegadoParaMostrarLabel(MostrarLabelrojo); nombreRojo.Invoke(d18, new Object[] { mensajeinvitados }); } else { MessageBox.Show("No se ha podido enviar nah :V"); } break; case 10: //Enviamos posibe IDP idposible = Convert.ToInt32(trozos[1].Split('\0')[0]); break; case 11: //Iniciar Partida id = idposible; mensajevuelta = trozos[1].Split('\0')[0]; string[] mensajejugadores = trozos[1].Split('|'); numerojugadores = (mensajejugadores.Length - 1); for (int i = 0; i < (mensajejugadores.Length - 1); i++) { vectorjugadores[i] = mensajejugadores[i + 1]; } vectorposiciones[0] = 130; vectorposiciones[1] = 131; vectorposiciones[2] = 132; vectorposiciones[3] = 133; // Se prepara el inicio de la Partida DelegadoParaMostrarLabel d100 = new DelegadoParaMostrarLabel(MostrarLabels); nombreRojo.Invoke(d100, new Object[] { vectorjugadores }); DelegadoParaMostrar d102 = new DelegadoParaMostrar(InicioPartida); nombreRojo.Invoke(d102, new Object[] {}); DelegadoParaMostrar jug2 = new DelegadoParaMostrar(VisibleParaJugar); button4.Invoke(jug2, new Object[] { }); numeroLbl.Invoke(jug2, new Object[] { }); turno = 0; DelegadoParaEscribir2 jug1 = new DelegadoParaEscribir2(EscribeLabelturno); turnoLbl.Invoke(jug1, new Object[] { vectorjugadores[turno] }); break; case 12: // Recibe los turnos y las posiciones de las fichas con el dado turno = Convert.ToInt32(trozos[1]); DelegadoParaEscribir2 jug12 = new DelegadoParaEscribir2(EscribeLabelturno); turnoLbl.Invoke(jug12, new Object[] { vectorjugadores[turno] }); turno2 = Convert.ToInt32(trozos[2]); mensajevuelta = trozos[3].Split('\0')[0]; string[] mensajeposiciones = trozos[3].Split('|'); for (int i = 0; i < (mensajeposiciones.Length); i++) { vectorposiciones[i] = Convert.ToInt32(mensajeposiciones[i]); } DelegadoParaFicha d21 = new DelegadoParaFicha(MostraFicha); ficharoja.Invoke(d21, new Object[] { vectorposiciones }); break; case 13: // El registro satisfactorio o no y el Borrado de usuarios MessageBox.Show(nombre.Text + ": " + mensaje); break; case 14: //Se recibe el turno y las posiciones de los jugadores al iniciar partida mensajevuelta = trozos[2].Split('\0')[0]; string[] mensajeposiciones2 = trozos[2].Split('|'); for (int i = 0; i < (mensajeposiciones2.Length); i++) { vectorposiciones[i] = Convert.ToInt32(mensajeposiciones2[i]); } DelegadoParaFicha d23 = new DelegadoParaFicha(MostraFicha); ficharoja.Invoke(d23, new Object[] { vectorposiciones }); break; case 15: //FIN PARTIDA MessageBox.Show(nombre.Text + ": " + mensaje); DelegadoParaFinalizar d101 = new DelegadoParaFinalizar(FinPartida); nombreRojo.Invoke(d101, new Object[] {}); break; } } }
private void AtenderServidor() { DelegadoParaEscribir delegado = new DelegadoParaEscribir(CambiaString); while (true) { //recibimos mensaje del servidor byte[] msg2 = new byte[80]; server.Receive(msg2); string[] recibido = Encoding.ASCII.GetString(msg2).Split('/'); int codigo = Convert.ToInt32(recibido[0]); string mensaje = recibido[1].Split('\0')[0]; switch (codigo) { case 3: //número de partidas ganadas por un jugador if (mensaje == "NO EXISTE") { resultado1.Invoke(delegado, new object[] { "resultado1", "El jugador introducido no existe.", null }); } else if (mensaje == "ERROR") { resultado1.Invoke(delegado, new object[] { "resultado1", "No se ha podido realizar la búsqueda en la base de datos.", null }); } else { resultado1.Invoke(delegado, new object[] { "resultado1", "Número de partidas ganadas: " + mensaje, null }); } break; case 4: //nombre del ganador de una partida concreta if (mensaje == "NO EXISTE") { resultado1.Invoke(delegado, new object[] { "resultado1", "La partida introducida no existe.", null }); } else if (mensaje == "ERROR") { resultado1.Invoke(delegado, new object[] { "resultado1", "No se ha podido realizar la búsqueda en la base de datos.", null }); } else { //MessageBox.Show("Nombre del ganador: " + mensaje); resultado1.Invoke(delegado, new object[] { "resultado1", "Nombre del ganador: " + mensaje, null }); } break; case 5: //numero de goles de un jugador en concreto if (mensaje == "NO EXISTE") { resultado1.Invoke(delegado, new object[] { "resultado1", "El jugador introducido no existe.", null }); } else if (mensaje == "ERROR") { resultado1.Invoke(delegado, new object[] { "resultado1", "No se ha podido realizar la búsqueda en la base de datos.", null }); } else { resultado1.Invoke(delegado, new object[] { "resultado1", "Número de goles marcados: " + mensaje, null }); } break; case 6: //lista de conectados mensaje = recibido[2].Split('\0')[0]; String[] lista = mensaje.Split(','); NConectados.Invoke(delegado, new object[] { "NConectados", recibido[1], null }); listBox1.Invoke(delegado, new object[] { "listBox1", null, lista }); break; case 7: Form3 invi = new Form3(mensaje); invi.ShowDialog(); while (invi.resultadoinvitacion == 0) { } invi.Close(); string ms; if (invi.resultadoinvitacion == 1) //ha aceptado la invitacion { ms = "8/SI," + mensaje + "," + usuario; byte[] msg = System.Text.Encoding.ASCII.GetBytes(ms); server.Send(msg); // //iniciar partida // } if (invi.resultadoinvitacion == 2) //no ha aceptado la invitacion { ms = "8/NO," + mensaje + "," + usuario; byte[] msg = System.Text.Encoding.ASCII.GetBytes(ms); server.Send(msg); } break; case 8: string[] trozos = mensaje.Split(','); if (trozos[0] == "SI") //la otra persona ha aceptado la invitación { MessageBox.Show(trozos[1] + " ha aceptado tu invitación. Prepárate para jugar."); // //iniciar partida // } if (trozos[0] == "NO") //la otra persona no ha aceptado la invitación { MessageBox.Show(trozos[1] + " ha rechazado tu invitación."); } break; case 9: string[] partes = mensaje.Split('$'); listBox2.Invoke(delegado, new object[] { "listBox2", null, partes }); break; } } }
private void AtenderServidor() { while (true) { //Recibimos mensaje del servidor byte[] msg2 = new byte[80]; server.Receive(msg2); string[] trozos = Encoding.ASCII.GetString(msg2).Split('/'); int codigo = Convert.ToInt32(trozos[0]); string mensaje = trozos[1].Split('\0')[0]; string mensajevuelta; string Nombreconv; switch (codigo) { case 1: // LogIn DelegadoParaMostrar d6 = new DelegadoParaMostrar(VisiblelblCase1); label3.Invoke(d6, new Object[] {}); DelegadoParaMostrar d7 = new DelegadoParaMostrar(VisibleTxtCase1); Fecha.Invoke(d7, new Object[] {}); DelegadoParaMostrar d8 = new DelegadoParaMostrar(VisibleBotonCase1); Ganador.Invoke(d8, new Object[] {}); MessageBox.Show("Estas dentro: " + mensaje); break; case 2: // Edad media de los ganadores con ese color MessageBox.Show("Edad media: " + mensaje); break; case 3: // Ganador en esa fecha MessageBox.Show("El ganador es: " + mensaje); break; case 4: // Tanto por ciento de partidas ganadas MessageBox.Show("Tanto por ciento de partidas ganadas con ese color es: " + mensaje); break; case 5: // listadeconectados string[] partes = Encoding.ASCII.GetString(msg2).Split('/'); string mensajefinal = partes[1].Split('\0')[0]; string[] mensaje2 = mensajefinal.Split('|'); DelegadoParaEscribir dele = new DelegadoParaEscribir(EscribeConectados); dataGridView1.Invoke(dele, new Object[] { mensaje2 }); break; case 6: //Muestra si se ha aceptado la peticion mensajevuelta = trozos[1].Split('\0')[0]; acepta = trozos[2].Split('\0')[0]; DelegadoParaMostrar d9 = new DelegadoParaMostrar(VisiblePanelIf); DelegadoParaEscribir2 d10 = new DelegadoParaEscribir2(EscribeBox2); if (mensajevuelta == "Acepta") { panel2.Invoke(d9, new Object[] {}); textBox2.Invoke(d10, new Object[] { acepta + " acepta la inviacion" }); } else { panel2.Invoke(d9, new Object[] { }); textBox2.Invoke(d10, new Object[] { acepta + " rechaza la inviacion" }); } break; case 7: //Invitar mensajevuelta = trozos[1].Split('\0')[0]; NombreInvitador = trozos[2].Split('\0')[0]; DelegadoParaMostrar d11 = new DelegadoParaMostrar(VisibleCase7); DelegadoParaEscribir2 d12 = new DelegadoParaEscribir2(EscribeBox3); DelegadoParaMostrar d13 = new DelegadoParaMostrar(NoVisiblePanel1); DelegadoParaMostrar d17 = new DelegadoParaMostrar(VisiblePanel); if (mensajevuelta == "Invitado") { tablero.Invoke(d17, new Object[] { }); panel1.Invoke(d11, new Object[] { }); InvitadortextBox3.Invoke(d12, new Object[] { NombreInvitador }); } else { tablero.Invoke(d17, new Object[] { }); panel1.Invoke(d13, new Object[] { }); } break; case 8: // Recibo una frase chat mensajevuelta = trozos[1].Split('\0')[0]; Nombreconv = trozos[2].Split('\0')[0]; DelegadoParaEscribir2 d16 = new DelegadoParaEscribir2(EscribeChat); Chatlbl.Invoke(d16, new Object[] { Chatlbl.Text + Nombreconv + ":" + mensajevuelta + "\n" }); break; case 9: //Mostramos CHAT id = idposible; mensajevuelta = trozos[1].Split('\0')[0]; if (mensajevuelta == "crear") { DelegadoParaMostrar d14 = new DelegadoParaMostrar(CrearChatVisible); chatlabel.Invoke(d14, new Object[] { }); } else { MessageBox.Show("No se ha podido enviar nah :V"); } break; case 10: //Enviamos posibe IDP idposible = Convert.ToInt32(trozos[1].Split('\0')[0]); break; } } }
private void AtenderServidor() //Funcion que esta constantemente a la espera de recibir un mensaje del servidor. { while (true) { //Recibimos la respuesta del servidor. byte[] msg2 = new byte[1500]; //Tambien sera un vector de bytes la respuesta. server.Receive(msg2); string[] trozos = Encoding.ASCII.GetString(msg2).Split('/'); //Cortar por final de string. int codigo = Convert.ToInt32(trozos[0]); int idPartida = Convert.ToInt32(trozos[1]); string mensaje; mensaje = trozos[2].Split('\0')[0]; //MessageBox.Show(Convert.ToString(codigo)); switch (codigo) { case 1: //Registrar if (mensaje == "OK") { MessageBox.Show("Te has registrado correctamente"); Desconectar(); } else if (mensaje == "ERROR_EXISTE") { MessageBox.Show("El usuario ya existe"); Desconectar(); } else { MessageBox.Show("No hay más capacidad"); Desconectar(); } break; case 2: //Login if (mensaje == "OK") { DelegadoParaEscribir delegado = new DelegadoParaEscribir(DarNombreContra); this.Invoke(delegado, new object[] {}); DelegadoParaEscribir delegado2 = new DelegadoParaEscribir(HacerVisible); this.Invoke(delegado2, new object[] { }); this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { "~ CONECTADO ~" }); } else if (mensaje == "YASESION") { MessageBox.Show("El usuario ya tiene una sesión iniciada"); atender.Abort(); this.BackColor = Color.Gray; server.Shutdown(SocketShutdown.Both); server.Close(); } else { MessageBox.Show("El usuario no está registrado"); } break; case 3: //No se han encontrados los datos introducidos por el ususario en la consulta. if (mensaje != "ERROR_NO_DATOS") { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { mensaje }); } else { label7.Text = "No se han encontrado datos en la consulta"; } break; case 4: //No se han encontrados los datos introducidos por el ususario en la consulta. if (mensaje != "ERROR_NO_DATOS") { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { mensaje }); } else { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { "No se han encontrado datos en la consulta" }); } break; case 5: //No se han encontrados los datos introducidos por el ususario en la consulta. if (mensaje != "ERROR_NO_DATOS") { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { mensaje }); } else { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { "No se han encontrado datos en la consulta" }); } break; case 6: //No se han encontrados los datos introducidos por el ususario en la consulta. if (mensaje != "ERROR_NO_DATOS") { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { mensaje }); } else { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { "No se han encontrado datos en la consulta" }); } break; case 7: //Invoca la funcion RellenarListaConectados y le pasa como parametros los nombres de los conectados. string[] words = mensaje.Split(','); DelegadoParaRellenar delegado3 = new DelegadoParaRellenar(RellenaListaConectados); this.Invoke(delegado3, new object[] { words }); break; case 8: //Al recibir la invitacion de alguien, puedes rechazarla, enviando un mensaje notificandolo,o bien acceptarla y empezar una partida con quien te invito y los demás jugadores que tambien accepten. if (mensaje == "NO") { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { "No se ha podido crear la partida, estas en la FRIENDZONE" }); } else { string[] partida = mensaje.Split(','); string pregunta = "Quieres unirte a una partida con " + partida[1]; DialogResult resultado = MessageBox.Show(pregunta, "Nueva partida", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (resultado == DialogResult.Yes) { mensaje = "8/0/" + partida[0] + "," + name + ",YES"; } else { mensaje = "8/0/" + partida[0] + "," + name + ",NO"; } byte[] msg = System.Text.Encoding.ASCII.GetBytes(mensaje); server.Send(msg); } break; case 9: //Todos los invitados han rechazado tu invitación, por lo tanto no puedes jugar con nadie. Estas solo. //MessageBox.Show("Estoy dentro del caso 9"); trozos = mensaje.Split('-'); string [] auxiliar = trozos[0].Split(','); //MessageBox.Show(Convert.ToString(aux[0])); if (auxiliar[0] == "YES") { idPartida = Convert.ToInt32(auxiliar[1]); ThreadStart ts = delegate { AbrirForm2(idPartida); }; Thread atender = new Thread(ts); atender.Start(); } else { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { "Estas en la FRIENDZONE" }); } break; case 10: //Hace funcionar el chat Forms[partidas[idPartida]].RellenaChat(mensaje); break; case 11: //Darse de baja if (mensaje == "OK") { MessageBox.Show("Te has dado de baja correctamente"); Desconectar(); } else if (mensaje == "ERROR_AL_ELIMINAR") { MessageBox.Show("Ha sucedido un error en el proceso"); Desconectar(); } else { MessageBox.Show("El usuario no esta registrado"); Desconectar(); } break; case 12: //Dibuja las posiciones de los jugadores. Forms[partidas[idPartida]].DibujaPosiciones(mensaje); break; case 13: //Recibir mensaje del servidor diciendo si ha ganado, o ha perdido etc Forms[partidas[idPartida]].NotificarCambios(mensaje); break; case 14: //Notificacion de errores en las consultas. if (mensaje != "ERROR_NO_DATOS") { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { mensaje }); } else { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { "No se han encontrado datos en la consulta" }); } break; case 15: //Notificacion de errores en las consultas. if (mensaje != "ERROR_NO_DATOS") { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { mensaje }); } else { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { "No se han encontrado datos en la consulta" }); } break; case 16: //Notificacion de errores en las consultas. if (mensaje != "ERROR_NO_DATOS") { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { mensaje }); } else { this.Invoke(new DelegadorParaEcribirRepuesta(Mensaje_Respuesta), new object[] { "No se han encontrado datos en la consulta" }); } break; case 17: //Recibir mensaje del servidor diciendo si ha ganado, o ha perdido etc Forms[partidas[idPartida]].NotificarCambios2(mensaje); break; } } }
private void AtenderServidor() { while (true) { //Recibimos la respuesta del servidor byte[] msg2 = new byte[80]; server.Receive(msg2); string[] trozos = Encoding.ASCII.GetString(msg2).Split('/'); string cod = trozos[0]; int codigo = Convert.ToInt32(cod); string mensaje = trozos[1].Split('\0')[0]; switch (codigo) { case 1: MessageBox.Show("Se ha creado usuario correctamente "); break; case 2: MessageBox.Show(mensaje); //MessageBox.Show("probando", "no probando", MessageBoxButtons.YesNo); break; case 3: if (mensaje == "NO") { MessageBox.Show("Usuario no encontrado"); } else { MessageBox.Show("El % de partidas ganadas es de: " + mensaje + "%"); } break; case 4: if (mensaje == "NO") { MessageBox.Show("No hay partida a esa hora o fecha(Recuerda que la fecha se pone XX-XX-XXXX y la hora XX:XX)"); } else { MessageBox.Show("El usuario que gano esa partida fue: " + mensaje); } break; case 5: if (mensaje == "NO") { string mennsaje = "0/" + Usuario.Text; byte[] msg3 = System.Text.Encoding.ASCII.GetBytes(mennsaje); server.Send(msg3); this.BackColor = Color.Red; MessageBox.Show("No se ha iniciado sesion correctamente "); } else { MessageBox.Show("Se ha podido iniciar sesion"); } break; case 7: //string[] sConectados = mensaje.Split(','); // int n = Convert.ToInt32(sConectados[0]); // dataGridView1.RowCount = n; // int j = 1; // for (int i = 0; i < n; i++) // { // dataGridView1[0, i].Value = sConectados[j]; // j++; // } DelegadoParaEscribir delegado = new DelegadoParaEscribir(ActualizarListaConectados); dataGridView1.Invoke(delegado, new object[] { mensaje }); break; case 8: //if(mensaje == "error") //{ // MessageBox.Show("No se ha podido invitar al usuario"); //} //else //{ string[] invit = mensaje.Split(','); int n = Convert.ToInt32(invit[1]); var result = MessageBox.Show(invit[0] + " te ha invitado, aceptas?", " Nueva invitacion ", MessageBoxButtons.YesNo); //MessageBox.Show("probando", "no probando", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { string respuesta = "9/SI/" + Usuario.Text + "/" + invit[0] + "/" + n; byte[] msg = System.Text.Encoding.ASCII.GetBytes(respuesta); server.Send(msg); //richTextBox1.Visible = true; //MensajeaEnviar.Visible = true; //EnviarMensaje.Visible = true; } else { string respuesta = "9/NO/" + Usuario.Text + "/" + invit[0] + n; byte[] msg = System.Text.Encoding.ASCII.GetBytes(respuesta); server.Send(msg); } //} break; case 9: MessageBox.Show(mensaje); break; case 10: DelegadoParaEscribir delegado2 = new DelegadoParaEscribir(EscribirenChat); richTextBox1.Invoke(delegado2, new object[] { mensaje }); break; } } }
private void AtenderServidor() { while (true) { //Recibimos mensaje del servidor byte[] msg2 = new byte[400]; server.Receive(msg2); string[] trozos = Encoding.ASCII.GetString(msg2).Split('/'); //MessageBox.Show(trozos[0] + "/" + trozos[1] + "/" + trozos[2]); int codigo = Convert.ToInt32(trozos[0]); //Tipo de mensaje int idPartida = Convert.ToInt32(trozos[1]); //Obtenemos el id de la partida //Limpiamos el mensaje string mensaje = trozos[2].Split('\0')[0]; switch (codigo) { case 1: //Registrar if (mensaje == "0") { nombre = Usuario.Text; DelegadoParaEscribir delegado = new DelegadoParaEscribir(DesbloquearFunciones); this.Invoke(delegado, new object[] { nombre }); } else { DelegadoParaEscribir delegado = new DelegadoParaEscribir(EscrivirInformacion); if (mensaje == "1") { this.Invoke(delegado, new object[] { "Este usuario ya existe" }); } else { this.Invoke(delegado, new object[] { "Registro correcto, pero se ha alcanzado el \n maximo de usuarios, intenta conectarte más tarde" }); } // Se terminó el servicio. // Nos desconectamos atender.Abort(); server.Shutdown(SocketShutdown.Both); server.Close(); } break; case 2: //Login if (mensaje == "0") { nombre = Usuario.Text; DelegadoParaEscribir delegado = new DelegadoParaEscribir(DesbloquearFunciones); this.Invoke(delegado, new object[] { nombre }); } else { DelegadoParaEscribir delegado = new DelegadoParaEscribir(EscrivirInformacion); if (mensaje == "1") { this.Invoke(delegado, new object[] { "Usuario y/o contraseña incorrecta" }); } else if (mensaje == "2") { this.Invoke(delegado, new object[] { "Se ha alcanzado el maximo de usuarios conectados \n Intentalo más tarde" }); } else { this.Invoke(delegado, new object[] { Usuario.Text + " ya tiene una sesion abierta" }); } // Se terminó el servicio. // Nos desconectamos atender.Abort(); server.Shutdown(SocketShutdown.Both); server.Close(); } break; case 3: //El mas rapido DelegadoParaEscribir delegado5 = new DelegadoParaEscribir(EscribirRespuesta); RespuestasBox.Invoke(delegado5, new object[] { mensaje }); break; case 4: //Los que ganaron a Joel string[] ganadores = mensaje.Split('*'); string respuesta = ganadores[0]; for (int i = 1; i < ganadores.Length; i++) { respuesta = respuesta + "\r\n\r\n" + ganadores[i]; } DelegadoParaEscribir delegado3 = new DelegadoParaEscribir(EscribirRespuesta); RespuestasBox.Invoke(delegado3, new object[] { respuesta }); break; case 5: string [] Viciado = mensaje.Split(','); DelegadoParaEscribir delegado6 = new DelegadoParaEscribir(EscribirRespuesta); RespuestasBox.Invoke(delegado6, new object[] { "El jugador que mas partidas ha jugado es " + Viciado[0] + " y ha jugado " + Viciado[1] + " veces" }); break; case 6: //Actualiza la lista de conectados en el grid DelegadoParaEscribir delegado2 = new DelegadoParaEscribir(Listaconectados); ConectadosGrid.Invoke(delegado2, new object[] { mensaje }); break; case 7: //Crear partida o preguntar si quiere unirse a una if (mensaje == "-1") { MessageBox.Show("Lo sentimos, no se ha podido crear la partida"); } else { string[] partida = mensaje.Split(','); string pregunta = "Quieres unirte a una partida con " + partida[1]; DialogResult result1 = MessageBox.Show(pregunta, "Nueva partida", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result1 == DialogResult.Yes) { mensaje = "7/0/" + partida[0] + "," + nombre + ",YES"; } else { mensaje = "7/0/" + partida[0] + "," + nombre + ",NO"; } byte[] msg = System.Text.Encoding.ASCII.GetBytes(mensaje); server.Send(msg); } break; case 8: //Iniciar el form de la partida si hay suficientes jugadores trozos = mensaje.Split('-'); string [] aux = trozos[0].Split(','); if (aux[0] == "1") { string mensajeJugadores = trozos[1]; string mensajeCartas = trozos[2]; idPartida = Convert.ToInt32(aux[1]); ThreadStart ts = delegate { AbrirForm2(idPartida, mensajeCartas, mensajeJugadores); }; Thread T = new Thread(ts); T.Start(); } else { MessageBox.Show("No tienes suficientes amigos"); } break; case 9: //Envia mensaje del chat al formulario correcto formularios[partidas[idPartida]].chat(mensaje); break; case 10: if (mensaje == "0") { DelegadoParaEscribir delegado4 = new DelegadoParaEscribir(BloquearFunciones); this.Invoke(delegado4, new object[] { "" }); } break; case 11: //Envia la jugada realizada por un jugador al formulario correspondente formularios[partidas[idPartida]].Jugada(mensaje); break; case 12: //Un jugador se ha desconectado formularios[partidas[idPartida]].JugadorDesconectado(mensaje); break; case 13: //Jugadores ganan la ronda y pasan al siguiente nivel formularios[partidas[idPartida]].NextLevel(mensaje); break; } } }