예제 #1
0
파일: Program.cs 프로젝트: miroskv/Ceres
        /// <summary>
        /// Startup method for Ceres UCI chess engine and supplemental features.
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
#if DEBUG
            Console.WriteLine();
            ConsoleUtils.WriteLineColored(ConsoleColor.Red, "*** WARNING: Ceres binaries built in Debug mode and will run much more slowly than Release");
#endif

            OutputBanner();
            CheckRecursiveOverflow();
            HardwareManager.VerifyHardwareSoftwareCompatability();

            // Load (or cause to be created) a settings file.
            if (!CeresUserSettingsManager.DefaultConfigFileExists)
            {
                Console.WriteLine();
                ConsoleUtils.WriteLineColored(ConsoleColor.Red, $"*** NOTE: Configuration file {CeresUserSettingsManager.DefaultCeresConfigFileName} not found in working directory.");
                Console.WriteLine();
                Console.WriteLine($"Prompting to for required values to initialize:");
                CeresUserSettingsManager.DoSetupInitialize();
            }

            // Configure logging level
            const bool LOG = false;
            CeresEnvironment.MONITORING_EVENTS = LOG;
            LogLevel    logLevel    = LOG ? LogLevel.Information : LogLevel.Critical;
            LoggerTypes loggerTypes = LoggerTypes.WinDebugLogger | LoggerTypes.ConsoleLogger;
            CeresEnvironment.Initialize(loggerTypes, logLevel);

            CeresEnvironment.MONITORING_METRICS = CeresUserSettingsManager.Settings.LaunchMonitor;

            //      if (CeresUserSettingsManager.Settings.DirLC0Networks != null)
            //        NNWeightsFilesLC0.RegisterDirectory(CeresUserSettingsManager.Settings.DirLC0Networks);

            MCTSEngineInitialization.BaseInitialize();


            Console.WriteLine();

#if DEBUG
            CheckDebugAllowed();
#endif

            if (args.Length > 0 && args[0].ToUpper() == "CUSTOM")
            {
                TournamentTest.Test(); return;
                //        SuiteTest.RunSuiteTest(); return;
            }

            StringBuilder allArgs = new StringBuilder();
            for (int i = 0; i < args.Length; i++)
            {
                allArgs.Append(args[i] + " ");
            }
            string allArgsString = allArgs.ToString();

            DispatchCommands.ProcessCommand(allArgsString);


            //  Win32.WriteCrashdumpFile(@"d:\temp\dump.dmp");
        }
예제 #2
0
        private void adminRightClick()
        {
            if (TournamentTest.isTraining)
            {
                TournamentTest.playGame(id.col, id.row);
                return;
            }

            if (panicCommand())
            {
                return;
            }

            if (state == RoundState.Lobby)
            {
                if (serverRound.canStartGame())
                {
                    AdminRunningTournamentManager.startRoundGame(id);
                }
            }
            else if (state == RoundState.Idle && serverRound.hasAllPlayers())
            {
                AdminRunningTournamentManager.startRoundLobby(id);
            }
        }