/// <summary> /// Sets the AI program this player will use /// </summary> /// <param name="program">AI program</param> /// <returns>Builder</returns> public AiPlayerBuilder AiProgram(IAIProgram program) { if (program == null) { throw new ArgumentNullException(nameof(program)); } _aiProgram = program; return(this); }
private GamePlayer CreateAgentFromComboboxObject(InGameForm form, object text, StoneColor color) { TimeControl timeControl = null; if (rbNoTimeControl.Checked) { timeControl = new NoTimeControl(); } else if (rbAbsoluteTiming.Checked) { timeControl = new AbsoluteTimeControl(1); } else if (rbCanadianTiming.Checked) { timeControl = new CanadianTimeControl(TimeSpan.FromSeconds(10), 5, TimeSpan.FromSeconds(10)); } else if (rbJapaneseTiming.Checked) { timeControl = new JapaneseTimeControl(20, 30, 3); } if (text is string && ((string)text) == "Human") { GamePlayer human = new HumanPlayerBuilder(color) .Name(color.ToString()) .Rank("NR") .Clock(timeControl) .Build(); (human.Agent as HumanAgent).MoveRequested += (e, e2) => { form.GuiAgent_PleaseMakeAMove(null, null); }; return(human); } if (text is IAIProgram) { IAIProgram newInstance = (IAIProgram)Activator.CreateInstance(text.GetType()); GamePlayer aiPlayer = new AiPlayerBuilder(color) .Name(text.ToString() + "(" + color.ToIgsCharacterString() + ")") .Rank("NR") .Clock(timeControl) .AiProgram(newInstance) .Build(); return(aiPlayer); } throw new Exception("This agent cannot be handled yet."); }
public Assistant(IGameSettings gameSettings, UiConnector uiConnector, IGameController gameController, GameInfo gameInfo) { _uiConnector = uiConnector; _gameController = gameController; _gameInfo = gameInfo; this.gameSettings = gameSettings; this._isOnlineGame = gameInfo is RemoteGameInfo; foreach (var program in AISystems.AIPrograms) { if (program.GetType().Name == gameSettings.Assistant.ProgramName) { Program = (IAIProgram)Activator.CreateInstance(program.GetType()); } } if (Program == null) { Program = new Fluffy(); } if (Program is Fluffy) { Fluffy fluffy = Program as Fluffy; fluffy.TreeDepth = gameSettings.Assistant.FluffyDepth; } if (Program is Fuego) { Fuego fuego = Program as Fuego; fuego.AllowResign = gameSettings.Assistant.FuegoAllowResign; fuego.Ponder = gameSettings.Assistant.FuegoPonder; fuego.MaxGames = gameSettings.Assistant.FuegoMaxGames; } RegisterHandlers(); }
public override GamePlayer Build(StoneColor color, TimeControlSettingsViewModel timeSettings, PlayerSettingsViewModel settings) { IAIProgram newInstance = (IAIProgram)Activator.CreateInstance(_ai.GetType()); if (settings.IsFuego) { Fuego fuego = (Fuego)newInstance; fuego.Ponder = settings.FuegoPonder; fuego.AllowResign = settings.FuegoResign; fuego.MaxGames = settings.FuegoMaxGames; } else if (settings.IsFluffy) { Fluffy fluffy = (Fluffy)newInstance; fluffy.TreeDepth = settings.FluffyTreeDepth; } return(new AiPlayerBuilder(color) .Name(this._aiLocalizedMetadata.Name + "(" + color.ToIgsCharacterString() + ")") .Rank("NR") .Clock(timeSettings.Build()) .AiProgram(newInstance) .Build()); }
public AiAgent(StoneColor color, IAIProgram aiProgram) : base(color) { _aiProgram = aiProgram; }
public AiProgramLocalizedMetadata(IAIProgram program) { _program = program; }
public GameCreationViewAiPlayer(IAIProgram program) { _aiLocalizedMetadata = new AiProgramLocalizedMetadata(program); this.Name = "AI: " + _aiLocalizedMetadata.Name; this._ai = program; }