public virtual string StartAsync(string id, string role, string gameDescription, int startClock, int playClock) { string error; MatchId = id; Role = role; TheGeneralGame = new GeneralGame(WcfSvcHostExePath) { TempFilePath = TempFilePath }; TheGeneralGame.LoadDescriptionFromGameDescriptionString(gameDescription); TheGeneralGame.InitializeGame(out error); TheGeneralGame.ConsultPrologFiles(PlayerSpecificPrologFiles); return(PlayerManagerProtocolConstants.ReadyReplyString); }
public GeneralGameManager(string gameDescriptionFileName, int startClock, int playClock, string wcfSvcHostExePath = null, string tempFilePath = null) { string error; AllMoves = new List <Move>(); MilliSecondsBetweenFreeRunningMoves = 0; AllowFreeRunningOfTurnsWithNoPlayerMoves = true; TheGeneralGame = new GeneralGame(wcfSvcHostExePath) { TempFilePath = tempFilePath }; DebugAndTraceHelper.WriteTraceLine("Loading and parsing game description...", DebugAndTraceHelper.StatusStripChannelId); DebugAndTraceHelper.WriteTraceLine(String.Format("Started loading and parsing game description at {0}", DateTime.Now.ToLongTimeString()), DebugAndTraceHelper.ManagerChannelId); TheGeneralGame.LoadDescriptionFromKIFFile(gameDescriptionFileName); DebugAndTraceHelper.WriteTraceLine(String.Format("Finished loading and parsing game description at {0}", DateTime.Now.ToLongTimeString()), DebugAndTraceHelper.ManagerChannelId); DebugAndTraceHelper.WriteTraceLine("Initializing game...", DebugAndTraceHelper.StatusStripChannelId); DebugAndTraceHelper.WriteTraceLine(String.Format("Started initializing game at {0}", DateTime.Now.ToLongTimeString()), DebugAndTraceHelper.ManagerChannelId); TheGeneralGame.InitializeGame(out error); DebugAndTraceHelper.WriteTraceLine(String.Format("Finished initializing game at {0}", DateTime.Now.ToLongTimeString()), DebugAndTraceHelper.ManagerChannelId); StartClock = startClock; PlayClock = playClock; MatchId = DateTime.Now.ToString() + TheGeneralGame.Name; DebugAndTraceHelper.AddLogFileListener(DebugAndTraceHelper.ManagerChannelId); DebugAndTraceHelper.WriteTraceLine("Creating players...", DebugAndTraceHelper.StatusStripChannelId); Players = new List <IGeneralGamePlayer>(); var roles = TheGeneralGame.FindRoles().ToArray(); if (TheGeneralGame.Name == "DarkChess") { for (int i = 0; i < roles.Count(); i++) { if (roles[i] != "random") { var newPlayer = new FirstDarkChessPlayer(roles[i], wcfSvcHostExePath, tempFilePath); DebugAndTraceHelper.AddLogFileListener(roles[i]); Players.Add(newPlayer); } else { var newPlayer = new FirstGeneralGamePlayer(roles[i], wcfSvcHostExePath, tempFilePath); DebugAndTraceHelper.AddLogFileListener(roles[i]); Players.Add(newPlayer); } } } else { for (int i = 0; i < roles.Count(); i++) { var newPlayer = new FirstGeneralGamePlayer(roles[i], wcfSvcHostExePath, tempFilePath); DebugAndTraceHelper.AddLogFileListener(roles[i]); Players.Add(newPlayer); } } foreach (TraceListener traceListener in DebugAndTraceHelper.GetListeners(DebugAndTraceHelper.StateChannelId)) { var ieWebBrowserListener = traceListener as IEWebBrowserListener; if (ieWebBrowserListener != null) { ieWebBrowserListener.xslFilePath = TheGeneralGame.XMLStyleSheetFilePath; } } }