예제 #1
0
        public void ConstructorCheck()
        {
            int            size          = 7;
            Position       robotpos      = new Position(1, 1);
            ulong          time          = 0;
            RobotDirection robotdir      = RobotDirection.UP;
            FieldType      fieldOnBot    = FieldType.NO_WALL;
            int            timeleftcrazy = 8;

            RoboChaseInfo  gameInfo  = new RoboChaseInfo(size, robotpos, time, robotdir, fieldOnBot, timeleftcrazy);
            RoboChaseModel gameModel = new RoboChaseModel();

            gameModel.newGame(7, gameInfo);
            Assert.AreEqual(gameModel.getRobotPos(), gameInfo.robot);
            Assert.AreEqual(gameModel.getSize(), 7);
            Assert.AreEqual(gameInfo.size, 7);

            RoboChaseInfo gameInfo11 = new RoboChaseInfo(11, robotpos, time, robotdir, fieldOnBot, timeleftcrazy);

            gameModel.newGame(11, gameInfo11);
            Assert.AreEqual(gameModel.getRobotPos(), gameInfo11.robot);
            Assert.AreEqual(gameModel.getSize(), 11);
            Assert.AreEqual(gameInfo11.size, 11);

            for (int i = 0; i < 10; i++)
            {
                int prev = gameModel.getTime();
                gameModel.AdvanceTime(this, new System.EventArgs());
                if (gameModel.isInGame())
                {
                    Assert.IsTrue(prev < gameModel.getTime());
                }
            }
        }
예제 #2
0
        public async Task LoadCheck()
        {
            _model.newGame(5);
            Assert.AreEqual(_model.getSize(), 5);

            RoboChaseInfo gameInfo = await _model.loadFromFileAsync(String.Empty);

            _model.newGame(gameInfo.size, gameInfo);

            _mock.Verify(dataAccess => dataAccess.LoadAsync(String.Empty), Times.Once());

            Assert.AreEqual(_model.getRobotPos(), gameInfo.robot);
            Assert.AreEqual(_model.getSize(), 11);
            Assert.AreEqual(gameInfo.size, 11);
            Assert.AreEqual(gameInfo.time, (ulong)0);
            Assert.AreEqual(_model.getTime(), 0);


            for (int i = 0; i < 10; i++)
            {
                int prev = _model.getTime();
                _model.AdvanceTime(this, new System.EventArgs());
                if (_model.isInGame())
                {
                    Assert.IsTrue(prev < _model.getTime());
                }
            }
        }
예제 #3
0
 private void Model_GameOver(object sender, EventArgs e)
 {
     MessageBox.Show("Congrat! You won, with time: " + TimeSpan.FromSeconds(_model.getTime()).ToString("g"));
     CurrentGameStatus = "Game Over! You won!";
 }