public EstadoJuegoDamas Mover(EstadoJuegoDamas estado, Jugada j) { EstadoJuegoDamas estAuxiliar = new EstadoJuegoDamas(estado); int posfinal = 0; foreach (Movimiento m in j.Los_movs) { if (estAuxiliar.EsLegalCaza(m)) { int pac = m.PosACazar(); estAuxiliar.Las_celdas[pac - 1].la_pieza = null; } estAuxiliar.Las_celdas[m.Destino - 1].la_pieza = estAuxiliar.Las_celdas[m.Origen - 1].la_pieza; estAuxiliar.Las_celdas[m.Origen - 1].la_pieza = null; posfinal = m.Destino; } estAuxiliar.JugadaHecha = j; //Convertir en reina Pieza.Jugadores color; if (estAuxiliar.Las_celdas[posfinal - 1].la_pieza.Owner == Pieza.Jugadores.blanco && FilaDe(posfinal) == 8 && estAuxiliar.Las_celdas[posfinal - 1].la_pieza.Tipo == Pieza.TiposPiezas.peon ) { color = estAuxiliar.Las_celdas[posfinal - 1].la_pieza.Owner; estAuxiliar.Las_celdas[posfinal - 1].la_pieza = Pieza.HacerPieza(Pieza.TiposPiezas.Reina); estAuxiliar.Las_celdas[posfinal - 1].la_pieza.Owner = color; } else { if (estAuxiliar.Las_celdas[posfinal - 1].la_pieza.Owner == Pieza.Jugadores.negro && FilaDe(posfinal) == 1 && estAuxiliar.Las_celdas[posfinal - 1].la_pieza.Tipo == Pieza.TiposPiezas.peon ) { color = estAuxiliar.Las_celdas[posfinal - 1].la_pieza.Owner; estAuxiliar.Las_celdas[posfinal - 1].la_pieza = Pieza.HacerPieza(Pieza.TiposPiezas.Reina); estAuxiliar.Las_celdas[posfinal - 1].la_pieza.Owner = color; } } if (estAuxiliar.JugadorAMover == Pieza.Jugadores.blanco) { estAuxiliar.JugadorAMover = Pieza.Jugadores.negro; } else { estAuxiliar.JugadorAMover = Pieza.Jugadores.blanco; } return(estAuxiliar); }
public Escaque(Escaque old) { if (!old.EsVacia()) { this.la_pieza = Pieza.HacerPieza(old.la_pieza.Tipo); la_pieza.Owner = old.la_pieza.Owner; la_pieza.Tipo = old.la_pieza.Tipo; } else { this.la_pieza = null; } }
public void InicializarEstado() { estado_inicial.Nivel = 0; estado_inicial.JugadorAMover = Pieza.Jugadores.blanco; for (int i = 0; i < 12; i++) { estado_inicial.Las_celdas[i].la_pieza = Pieza.HacerPieza(Pieza.TiposPiezas.peon); estado_inicial.Las_celdas[i].la_pieza.Owner = Pieza.Jugadores.blanco; } for (int i = 20; i < 32; i++) { estado_inicial.Las_celdas[i].la_pieza = Pieza.HacerPieza(Pieza.TiposPiezas.peon); estado_inicial.Las_celdas[i].la_pieza.Owner = Pieza.Jugadores.negro; } estadoActual = estado_inicial; }