public static IGameAIHost GetGameHost() { return(GameHostFactory.GetGameHost( GetGameRules(), GetGameResolver(), PlayerFactoryParserJson.NewJsonPlayer(InputJson), logger)); }
public IEnumerable <Player> GetPlayers() { var players = PlayerFactoryParserJson.NewJsonPlayer(InputJson); var gamerules = GetGameRules(); var result = players.Select(p => Player.NewPlayer(p, gamerules)); return(result); }
public void TestGameRuler_Semaphore() { var log = new Mock <ILogger>(); log.Setup(l => l.AddLogItem(It.IsAny <string>(), It.IsAny <object[]>())) .Callback <string, object[]>((fmt, args) => { { Log(fmt, args); } }); try { using (var gr = GameHostFactory.GetGameHost( GetGameRules(), GetGameResolver(), PlayerFactoryParserJson.NewJsonPlayer(InputJson), log.Object)) { gr.StartGame(); Log("============================================="); Assert.IsTrue(gr.TotalAttemptsCount <= MaxAttempts); Assert.IsTrue(gr.TotalAttemptsCount > 0); Log("Total attempts count: {0}", gr.TotalAttemptsCount); var go = gr.GameOutput; Log("Winner player {0}", go.WinnerPlayer.Name); Log("Number of attempts {0}", go.NumberOfAttempts); Log("Winner's best guess {0}", go.WinnersBestGuess); Log("Secret value {0}", go.SecretValue); } } catch (OperationCanceledException) { } catch (Exception e) { var ex = e; while (ex != null) { Log(ex.Message, ex.StackTrace); ex = ex.InnerException; } Assert.Fail(); } }
public void TestJsonParser() { var pp = PlayerFactoryParserJson.NewJsonPlayer(InputJson); Assert.IsNotNull(pp); Assert.AreEqual(5, new List <IParserPlayer>(pp).Count); foreach (var p in pp) { switch (p.Name) { case "John": Assert.AreEqual("Random", p.Type); break; case "Paul": Assert.AreEqual("Memory", p.Type); break; case "Webb": Assert.AreEqual("Thorough", p.Type); break; case "Sack": Assert.AreEqual("Cheater", p.Type); break; case "Rick": Assert.AreEqual("ThoroughCheater", p.Type); break; default: Assert.Fail("Unknown player name was parsed"); break; } } }