public static PositionsWithHistory FromEPDOrPGNFile(string fileName) { PositionsWithHistory source = new PositionsWithHistory(); source.LoadOpenings(fileName); return(source); }
/// <summary> /// Returns a position source that returns positions from one or more MoveSequences. /// </summary> /// <param name="fen"></param> /// <returns></returns> public static PositionsWithHistory FromMoveSequencess(params PositionWithHistory[] moveSequences) { PositionsWithHistory source = new PositionsWithHistory(); source.moveSequences = new List <PositionWithHistory>(); foreach (PositionWithHistory moveSequence in moveSequences) { source.moveSequences.Add(moveSequence); } return(source); }
/// <summary> /// Returns a position source that returns positions from one or more FENs. /// </summary> /// <param name="fen"></param> /// <returns></returns> public static PositionsWithHistory FromFENs(params string[] fens) { PositionsWithHistory source = new PositionsWithHistory(); source.fensAndMoves = new List <string>(); foreach (string fen in fens) { source.fensAndMoves.Add(fen); } return(source); }
/// <summary> /// Returns a position source that returns a single starting position (possibly multiple times). /// </summary> /// <param name="fen"></param> /// <returns></returns> public static PositionsWithHistory FromFEN(string fen, int repeatCount) { if (repeatCount > 1_000_000) { throw new ArgumentOutOfRangeException(nameof(repeatCount), "is too large, maximum 1_000_000"); } PositionsWithHistory source = new PositionsWithHistory(); source.fensAndMoves = new List <string>(); for (int i = 0; i < repeatCount; i++) { source.fensAndMoves.Add(fen); } return(source); }