コード例 #1
0
 /// <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);
 }
コード例 #2
0
        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.");
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        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());
        }
コード例 #5
0
ファイル: AiAgent.cs プロジェクト: omegaGoTeam/omegaGo.Core
 public AiAgent(StoneColor color, IAIProgram aiProgram) : base(color)
 {
     _aiProgram = aiProgram;
 }
コード例 #6
0
 public AiProgramLocalizedMetadata(IAIProgram program)
 {
     _program = program;
 }
コード例 #7
0
 public GameCreationViewAiPlayer(IAIProgram program)
 {
     _aiLocalizedMetadata = new AiProgramLocalizedMetadata(program);
     this.Name            = "AI: " + _aiLocalizedMetadata.Name;
     this._ai             = program;
 }