private void hilo_LocalizaNumero() { while (hcoms.nCte == -1) { Thread.Sleep(10); } nCte = hcoms.nCte; comsUDP = new HiloComsUDP(201 + nCte); hiloUDP = new Thread(new ThreadStart(comsUDP.startplayer)); hiloUDP.Start(); comsUDP.enviaMensaje("identifica@" + usr + "@" + nCte.ToString()); hiloVerifica = new Thread(new ThreadStart(hilo_VerificaServidorActivo)); hiloVerifica.Start(); hiloLoseOP = new Thread(new ThreadStart(hilo_VerificaLoseOP)); hiloLoseOP.Start(); hiloAquireOP = new Thread(new ThreadStart(hilo_VerificaAquireOP)); hiloAquireOP.Start(); }
public void accionPieza(int x, int y, String tipo) { if (seleccionada) { seleccionada = false; String tag = (String)tablero[x, y].btn.BackgroundImage.Tag; //----------------------------------------------Mueve Pieza----------------------------------------------- if (tag == "l" || tag == "r" || tipo == "AUTOMATICO") { bool cr = false; limpiaEnroque(); iluminaPosibles(selectX, selectY, ""); Pieza aux = tablero[x, y].pza; if (tag == "r" || tipo == "AUTOMATICO") { tablero[x, y].pza = tablero[selectX, selectY].pza; tablero[selectX, selectY].pza = null; } else { comsUDP.enviaMensaje("partida@MOVIMIENTO@" + comsUDP.nCte1.ToString() + "@" + comsUDP.nOp.ToString() + "@" + selectX.ToString() + "@" + selectY.ToString() + "@" + x.ToString() + "@" + y.ToString() + "@N"); while (!movida) { Thread.Sleep(10); } movida = false; return; } //Posicion de los Reyes if (tablero[x, y].pza.color && tablero[x, y].pza.roll == "king") { reyb.x = x; reyb.y = y; cr = true; } else if (!tablero[x, y].pza.color && tablero[x, y].pza.roll == "king") { reyn.x = x; reyn.y = y; cr = true; } if (tag == "r" || tipo == "AUTOMATICO") { tablero[selectX, selectY].colocaPieza(); tablero[x, y].colocaPieza(); } //--------------------- if (jaqueAlRey(turnoBlanca)) { if (turnoBlanca) { MessageBox.Show("El Rey Blanco está en Jaque", "Jaque"); } else { MessageBox.Show("El Rey Dorado está en Jaque", "Jaque"); } tablero[selectX, selectY].pza = tablero[x, y].pza; tablero[x, y].pza = aux; //Regresar posicion de los Reyes if (cr) { if (tablero[selectX, selectY].pza.color) { reyb.x = selectX; reyb.y = selectY; } else { reyn.x = selectX; reyn.y = selectY; } } tablero[selectX, selectY].colocaPieza(); tablero[x, y].colocaPieza(); } else { //Comprueba piezaz que alteren el enroque alteranEnroque(x, y); //Peon a Dama if (tablero[x, y].piezaBlanca() && tablero[x, y].pza.roll == "pawn" && y == 0) { tablero[x, y].pza.roll = "queen"; tablero[x, y].colocaPieza(); MessageBox.Show("Peon blanco a Reina", "Promocion"); } else if (tablero[x, y].piezaNegra() && tablero[x, y].pza.roll == "pawn" && y == 7) { tablero[x, y].pza.roll = "queen"; tablero[x, y].colocaPieza(); MessageBox.Show("Peon dorado a Reina", "Promocion"); } //Turno if (comsUDP.enroque) { comsUDP.enroque = false; } else { if (turnoBlanca) { turnoBlanca = false; } else { turnoBlanca = true; } } int i, j, auxX = selectX, auxY = selectY; iluminado = 0; amenaza = false; for (j = 0; j < 8; j++) { for (i = 0; i < 8; i++) { if (tablero[i, j].pza != null) { if (tablero[i, j].pza.color == turnoBlanca) { selectX = i; selectY = j; iluminaPosibles(i, j, "j"); } } } } if (jaqueAlRey(turnoBlanca)) { if (iluminado == 0) { terminado = true; tm = false; MessageBox.Show("Jaque Mate", "Jaque"); //this.Close(); } else { if (turnoBlanca) { MessageBox.Show("Jaque al Rey Blanco", "Jaque"); } else { MessageBox.Show("Jaque al Rey Dorado", "Jaque"); } } } else if (iluminado == 0) { MessageBox.Show("Ahogado", "Empate"); //this.Close(); } } } else { limpiaEnroque(); iluminaPosibles(selectX, selectY, ""); if (tag == "g") { enroque(x, y); } if (tag == "y") { MessageBox.Show("No es posible enrocar en esta direccion", "Enroque"); } } } //--------------------------------------------------Seleccionar la Pieza---------------------------------- else { if (!terminado) { if (tablero[x, y].pza != null) { if ((turnoBlanca && tablero[x, y].piezaBlanca()) || (!turnoBlanca && tablero[x, y].piezaNegra()) || tipo == "AUTOMATICO") { if ((tablero[x, y].piezaBlanca() && comsUDP.color == "blancas") || (tablero[x, y].piezaNegra() && comsUDP.color == "doradas") || tipo == "AUTOMATICO") { iluminado = 0; selectX = x; selectY = y; amenaza = false; if (tipo == "MANUAL") { iluminaPosibles(x, y, "l"); } else { seleccionada = true; } if (iluminado > 0) { seleccionada = true; //Comprueba condiciones para enroque compruebaEnroque(); } else if (amenaza) { if (turnoBlanca) { MessageBox.Show("Rey Blanco quedará en Jaque", "Jaque"); } else { MessageBox.Show("Rey Dorado quedará en Jaque", "Jaque"); } iluminaPosibles(x, y, ""); } } else { MessageBox.Show("No son tus piezas", "Color"); } } else { if (turnoBlanca) { MessageBox.Show("Es el turno de las Blancas", "Turno"); } else { MessageBox.Show("Es el turno de las Doradas", "Turno"); } } } } } }