// ------------------------- Other -------------------------- private void SendInfo(string data) { var vars = new Dictionary <UciInfo, string>(); vars[UciInfo.String] = data; UciGui.Info(vars); }
public void Uci() { bool debug = false; while (debug) { System.Threading.Thread.Sleep(100); } UciGui.ID("Vladivostok", "Valdemar Erlingsson"); UciGui.Option("Hash", UciOptionType.Spin, 32, 1, 2048, null); UciGui.Option("UCI_Opponent", UciOptionType.String, null, null, null, null); //UciGui.Option("Nullmove", UciOptionType.Check, true, null, null, null); //UciGui.Option("Ponder", UciOptionType.Check, false, null, null, null); //UciGui.Option("OwnBook", UciOptionType.Check, true, null, null, null); Manager.InitLibrary(); Manager.SendMessage = EngineHandler; UciGui.UciOk(); }
public void Go(UciGoParameters parameters) { var player = BoardPtr->PlayerTurn; int depth = parameters.Depth ?? 99; long time = Int32.MaxValue; if (player == Board.COLOR_WHITE && parameters.WhiteTime != null) { var toGo = parameters.MovesToGo ?? 100; time = (long)(parameters.WhiteTime.Value / (double)toGo + parameters.WhiteInc.GetValueOrDefault()); } else if (player == Board.COLOR_BLACK && parameters.BlackTime != null) { var toGo = parameters.MovesToGo ?? 100; time = (long)(parameters.BlackTime.Value / (double)toGo + parameters.BlackInc.GetValueOrDefault()); } time = parameters.MoveTime ?? time; BestMove = new MoveSmall(); // Stop searching after time has passed Task.Factory.StartNew(() => { if (parameters.Infinite) { return; } Thread.Sleep((int)time); Search.StopSearch(); }); // Start the search Task.Factory.StartNew(() => { BestMove = Search.SearchPos(BoardPtr, depth); UciGui.BestMove(new UciMove(BestMove.From, BestMove.To, (UciPiece)BestMove.Promotion), null); }); }
public void IsReady() { UciGui.ReadyOk(); }