//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; }
private Image GetImage(State.Category _cat, bool _color) { if (_color) { return(wPieces[(int)_cat]); } else { return(bPieces[(int)_cat]); } }
//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); }