Ejemplo n.º 1
0
        public void MinefieldModelNewGameTest()
        {
            MinefieldTable table = new MinefieldTable();

            _model.NewGame();

            table = _model.Table;

            Assert.AreEqual(_model.GameTime, 0);
            Assert.IsFalse(_model.IsGameOver);

            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    if (i == 9 && j == 9)
                    {
                        Assert.AreEqual(table.fieldValues[i, j], FieldType.Player);
                    }
                    else
                    {
                        Assert.AreEqual(table.fieldValues[i, j], FieldType.Empty);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public void MinefieldModelStepTest()
        {
            MinefieldTable table = new MinefieldTable();

            _model.NewGame();

            table = _model.Table;

            Assert.AreEqual(FieldType.Player, table.fieldValues[9, 9]);

            _model.Step(Dir.Up);

            Assert.AreEqual(FieldType.Player, table.fieldValues[8, 9]);

            _model.Step(Dir.Left);

            Assert.AreEqual(FieldType.Player, table.fieldValues[8, 8]);

            _model.Step(Dir.Right);

            Assert.AreEqual(FieldType.Player, table.fieldValues[8, 9]);

            _model.Step(Dir.Down);

            Assert.AreEqual(FieldType.Player, table.fieldValues[9, 9]);

            _model.Step(Dir.Down);//Stepping into a wall, shouldn't happen

            Assert.AreEqual(FieldType.Player, table.fieldValues[9, 9]);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Új játék kezdése.
 /// </summary>
 public void NewGame()
 {
     _table = new MinefieldTable();
     _playerX = 9;
     _playerY = 9;
     _dead = false;
     _gameTime = 0;
 }
Ejemplo n.º 4
0
        public void MinefieldModelGamOver1Test()
        {
            MinefieldTable table = new MinefieldTable();

            _model.NewGame();

            table = _model.Table;

            table.fieldValues[8, 9] = FieldType.HeavyB;

            _model.AdvanceTime();

            Assert.AreEqual(_model.IsGameOver, true);
            Assert.AreEqual(table.fieldValues[9, 9], FieldType.HeavyB);
        }
Ejemplo n.º 5
0
        public void MinefieldModelAdvancedBombsHeavyTest()
        {
            MinefieldTable table = new MinefieldTable();

            _model.NewGame();

            table = _model.Table;

            table.fieldValues[0, 0] = FieldType.HeavyB;

            _model.AdvanceBomb(Weight.Heavy);
            Assert.IsFalse(_model.IsGameOver);
            Assert.AreEqual(table.fieldValues[0, 0], FieldType.Empty);
            Assert.AreEqual(table.fieldValues[1, 0], FieldType.HeavyB);
        }
Ejemplo n.º 6
0
        public void MinefieldModelGamOver2Test()
        {
            MinefieldTable table = new MinefieldTable();

            _model.NewGame();

            table = _model.Table;
            _model.Step(Dir.Up);

            table.fieldValues[8, 8] = FieldType.HeavyB;

            _model.Step(Dir.Left);

            Assert.AreEqual(_model.IsGameOver, true);
            Assert.AreEqual(table.fieldValues[8, 8], FieldType.HeavyB);
            Assert.AreEqual(table.fieldValues[9, 8], FieldType.Empty);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Játék betöltése.
        /// </summary>
        /// <param name="path">Elérési útvonal.</param>
        public async Task LoadGameAsync(String path)
        {
            if (_dataAccess == null)
                throw new InvalidOperationException("No data access is provided.");
            
            ReturnData returndata = await _dataAccess.LoadAsync(path);

            _gameTime = returndata.gameTime;
            _table = returndata.table;
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    if(_table.fieldValues[i, j] == FieldType.Player)
                    {
                        _playerX = i;
                        _playerY = j;
                    }
                }
            }
            
        }
Ejemplo n.º 8
0
        public void MinefieldModelTimeAdvanceTest()
        {
            MinefieldTable table = new MinefieldTable();

            _model.NewGame();

            table = _model.Table;

            _model.AdvanceTime();//1
            Assert.AreEqual(_model.GameTime, 1);
            Assert.IsFalse(_model.IsGameOver);

            _model.AdvanceTime();//2
            Assert.AreEqual(_model.GameTime, 2);
            Assert.IsFalse(_model.IsGameOver);

            _model.AdvanceTime();//3
            Assert.AreEqual(_model.GameTime, 3);
            Assert.IsFalse(_model.IsGameOver);

            _model.AdvanceTime();//4
            Assert.AreEqual(_model.GameTime, 4);
            Assert.IsFalse(_model.IsGameOver);

            _model.AdvanceTime();//5
            Assert.AreEqual(_model.GameTime, 5);
            Assert.IsFalse(_model.IsGameOver);

            _model.AdvanceTime();//6
            Assert.AreEqual(_model.GameTime, 6);
            Assert.IsFalse(_model.IsGameOver);

            _model.AdvanceTime();//7
            Assert.AreEqual(_model.GameTime, 7);
            Assert.IsFalse(_model.IsGameOver);
        }
Ejemplo n.º 9
0
 /// <summary>
 /// Aknamező játék példányosítása.
 /// </summary>
 public MinefieldGameModel(IMinefieldDataAccess dataAccess)
 {
     _dataAccess = dataAccess;
     _table = new MinefieldTable();
     _dead = false;
 }