예제 #1
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();
        }
예제 #2
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());
        }
예제 #3
0
파일: UnitTest1.cs 프로젝트: figofan/fluffy
 public static void Test1()
 {
     Console.WriteLine("Test1 method StackTrace: '{0}'", Environment.StackTrace);
     Fluffy a  = new Fluffy();
     var    aa = new Puppy.Puppy();
 }