ulong AllRookSlides() { ulong rook = figureCoord.coord.GetBit(); ColorType color = figureCoord.figure.GetColor(); ulong stops = board.GetOwnedBits(); return ((Slide6(rook, stops) | Slide4(rook, stops) | Slide8(rook, stops) | Slide2(rook, stops)) & ~board.GetColorBits(color)); }
public IEnumerable <FigureMove> NextPawnMove(FigureCoord figureCoord) { if (figureCoord.figure.GetColor() == ColorType.white) { InitWhite(); } else { InitBlack(); } bit = figureCoord.coord.GetBit(); figureCoord.coord.extract(out x, out y); owned = board.GetOwnedBits(); this.figureCoord = figureCoord; foreach (FigureMove move in NextPawnMove_Double()) // e2-e4 { yield return(move); } foreach (FigureMove move in NextPawnMove_Forward()) // e2-e3 { foreach (FigureMove promove in NextPawnMove_Promotion(move)) { yield return(promove); } } foreach (FigureMove move in NextPawnMove_Fight()) // ed { foreach (FigureMove promove in NextPawnMove_Promotion(move)) { yield return(promove); } } }