Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
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);
        }
Пример #4
0
 public Game(int duration)
 {
     _ChessClock = new ChessClock(duration);
     GameState.InitGameState();
 }