public void TestClock1() { var settings = new TimeSettings { InitialTime = 60, MoveIncrement = 1 }; var clock = new ChessClock(settings); clock.StartClock(Base.Color.White); Thread.Sleep(1500); var elapsed = clock.Elapsed; clock.StopClock(); Assert.AreEqual((double)1500, (double)elapsed, (double)10); Assert.AreEqual(1500, (double)clock.TimeElapsedWhite, (double)10); Assert.AreEqual(60000 - 1500 + 1000, (double)clock.TimeRemainingWhite, (double)10); Assert.AreEqual((double)0, (double)clock.Elapsed, (double)0); clock.StartClock(Base.Color.Black); Thread.Sleep(3000); elapsed = clock.Elapsed; clock.StopClock(); Assert.AreEqual((double)3000, (double)elapsed, (double)10); Assert.AreEqual(3000, (double)clock.TimeElapsedBlack, (double)10); Assert.AreEqual(60000 - 3000 + 1000, (double)clock.TimeRemainingBlack, (double)10); Assert.AreEqual((double)0, (double)clock.Elapsed, (double)0); // assert white unaffected Assert.AreEqual(1500, (double)clock.TimeElapsedWhite, (double)10); Assert.AreEqual(60000 - 1500 + 1000, (double)clock.TimeRemainingWhite, (double)10); }
public void TestClockSwitch() { var settings = new TimeSettings { InitialTime = 60, MoveIncrement = 1 }; var clock = new ChessClock(settings); clock.StartClock(Base.Color.White); Thread.Sleep(1500); clock.StartClock(Base.Color.Black); Thread.Sleep(3000); clock.StartClock(Base.Color.White); Thread.Sleep(2000); clock.StopClock(); Assert.AreEqual((double)0, (double)clock.Elapsed, (double)0); Assert.AreEqual(60000 - 1500 + 1000 - 2000 + 1000, (double)clock.TimeRemainingWhite, (double)10); Assert.AreEqual(60000 - 3000 + 1000, (double)clock.TimeRemainingBlack, (double)10); Assert.AreEqual((double)3500, (double)clock.TimeElapsedWhite, (double)0); Assert.AreEqual((double)3000, (double)clock.TimeElapsedBlack, (double)0); }
public MatchRunner(IPlayer white, IPlayer black, TimeSettings timeSettings) { TimeSettings = timeSettings; PlayerWhite = white; PlayerBlack = black; var matchName = DateTime.Now.ToString("yyyyMMdd-HHmmss") + "-" + PlayerWhite.Name + "-" + PlayerBlack.Name; var dir = Path.Combine(OutputDir, matchName); Directory.CreateDirectory(dir); var fileWhite = Path.Combine(dir, "white.log"); var fileBlack = Path.Combine(dir, "black.log"); fsWhite = new FileStream(fileWhite, FileMode.CreateNew, FileAccess.Write, FileShare.Read); fsBlack = new FileStream(fileBlack, FileMode.CreateNew, FileAccess.Write, FileShare.Read); writerWhite = new StreamWriter(fsWhite); writerBlack = new StreamWriter(fsBlack); Board = new Base.Board(true); Clock = new ChessClock(TimeSettings); }
public Game(int duration) { _ChessClock = new ChessClock(duration); GameState.InitGameState(); }