Пример #1
0
    public List <Jugada> CalcularJugadasLegales(Pieza p, int pos)
    {
        List <Jugada>     rta             = new List <Jugada>();
        List <Jugada>     rtacaza         = new List <Jugada>();
        List <Jugada>     jugadasPosibles = new List <Jugada>();
        List <Movimiento> movPosibles     = new List <Movimiento>();
        List <Movimiento> movPosiblesCaza = new List <Movimiento>();

        movPosibles     = p.DestinosPosibles(pos, 1);
        movPosiblesCaza = p.DestinosPosibles(pos, 2);

        foreach (Movimiento mov in movPosibles)
        {
            Jugada j = new Jugada();
            j.AddLos_movs(mov);
            jugadasPosibles.Add(j);
        }


        foreach (Jugada jugp in jugadasPosibles)
        {
            foreach (Movimiento m in jugp.Los_movs)
            {
                if (EsLegal(m) && !rta.Contains(jugp))
                {
                    rta.Add(jugp);
                }
            }
        }
        jugadasPosibles.Clear();


        foreach (Movimiento mov in movPosiblesCaza)
        {
            Jugada j = new Jugada();
            j.Caza = true;
            j.AddLos_movs(mov);
            jugadasPosibles.Add(j);
        }

        foreach (Jugada jugp in jugadasPosibles)
        {
            foreach (Movimiento m in jugp.Los_movs)
            {
                if (EsLegalCaza(m) && !rtacaza.Contains(jugp))
                {
                    rtacaza.Add(jugp);
                }
            }
        }

        rta.AddRange(rtacaza);
        return(rta);
    }