Ejemplo n.º 1
0
 //constructor
 public Move(State.Category _cat, Position _startPos, Position _endPos, bool _kill, State.Category _final = State.Category.Empty)
 {
     start         = _startPos;
     end           = _endPos;
     kill          = _kill;
     check         = false;
     category      = (byte)_cat;
     finalCategory = (byte)_final;
 }
Ejemplo n.º 2
0
 private Image GetImage(State.Category _cat, bool _color)
 {
     if (_color)
     {
         return(wPieces[(int)_cat]);
     }
     else
     {
         return(bPieces[(int)_cat]);
     }
 }
Ejemplo n.º 3
0
        //voids
        public static List <Move> GetMoves(State.Category _cat, int dx, int dy, BitBoard _endPos, bool _kill)
        {
            List <Position> buffer = GetPos(_endPos.Value);
            List <Move>     ret    = new List <Move>(buffer.Count);

            for (int i = 0; i < buffer.Count; i++)
            {
                if (_cat == State.Category.Pawn && buffer[i].Y % 7 == 0)
                {
                    ret.Add(new Move(_cat, buffer[i].Offset(-dx, -dy), buffer[i], _kill, State.Category.Knight));
                    ret.Add(new Move(_cat, buffer[i].Offset(-dx, -dy), buffer[i], _kill, State.Category.Bishop));
                    ret.Add(new Move(_cat, buffer[i].Offset(-dx, -dy), buffer[i], _kill, State.Category.Rook));
                    ret.Add(new Move(_cat, buffer[i].Offset(-dx, -dy), buffer[i], _kill, State.Category.Queen));
                }
                else
                {
                    ret.Add(new Move(_cat, buffer[i].Offset(-dx, -dy), buffer[i], _kill));
                }
            }
            return(ret);
        }