Beispiel #1
0
    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);
    }
Beispiel #2
0
 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;
     }
 }
Beispiel #3
0
 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;
 }