コード例 #1
0
ファイル: GameTests.cs プロジェクト: punker76/PacMan
        public GameTests()
        {
            _gameSettings = new TestGameSettings();
            var gameClock = new TestGameClock();

            _game = new Game(gameClock, _gameSettings);
        }
コード例 #2
0
 public GhostTests()
 {
     _gameSettings = new TestGameSettings {
         PowerPills = { new CellLocation(50, 50) }
     };
     _gameClock = new TestGameClock();
 }
コード例 #3
0
        public FruitTests()
        {
            _now = DateTime.UtcNow;

            _gameSettings = new TestGameSettings();
            _gameClock    = new TestGameClock();
        }
コード例 #4
0
        public async Task EatingFruitOnEveryLevel(int levelNumber, int scoreIncrement)
        {
            var now       = DateTime.UtcNow;
            var gameClock = new TestGameClock();

            _gameSettings.Coins.Add(_gameSettings.PacMan.Location.Left);
            _gameSettings.Coins.Add(_gameSettings.PacMan.Location.Left.Left);
            _gameSettings.Fruit = _gameSettings.PacMan.Location.Left.Above;
            _gameSettings.FruitAppearsAfterCoinsEaten.Add(1);

            var game = new Game(gameClock, _gameSettings);

            game.StartGame();

            for (var level = 0; level < levelNumber - 1; level++)
            {
                await game.ChangeDirection(Direction.Left);

                await gameClock.Tick(now);  //Fruit appears

                await gameClock.Tick(now);  //Level completed

                if (game.Status != GameStatus.ChangingLevel)
                {
                    throw new Exception($"Game status should be GameStatus.ChangingLevel not {game.Status}");
                }

                WeExpectThat(game.PacMan).IsAt(_gameSettings.PacMan.Location.Left.Left);

                await gameClock.Tick(now.AddSeconds(7));  //Screen flashes

                WeExpectThat(game.PacMan).IsAt(_gameSettings.PacMan.Location);
            }

            await game.ChangeDirection(Direction.Left);

            await gameClock.Tick(now.AddSeconds(7)); // Eat coin, fruit appears

            WeExpectThat(game.PacMan).IsAt(_gameSettings.PacMan.Location.Left);

            await game.ChangeDirection(Direction.Up);

            var score = game.Score;

            await gameClock.Tick(); // Eat coin, fruit appears

            game.Should().BeEquivalentTo(new {
                Level = levelNumber,
                Score = score + scoreIncrement
            });
        }
コード例 #5
0
ファイル: CoinTests.cs プロジェクト: punker76/PacMan
        public async Task GameContainsAllCoins()
        {
            var gameBoard = new TestGameSettings();

            gameBoard.Coins.Add((1, 1));
            gameBoard.Coins.Add((1, 2));
            gameBoard.Coins.Add((2, 2));

            var gameClock = new TestGameClock();
            var game      = new Game(gameClock, gameBoard);

            game.StartGame();
            await gameClock.Tick();

            game.Coins.Should().BeEquivalentTo(
                new CellLocation(1, 1),
                new CellLocation(1, 2),
                new CellLocation(2, 2)
                );
        }
コード例 #6
0
 public PacManTests()
 {
     _gameSettings = new TestGameSettings();
     _gameClock    = new TestGameClock();
 }
コード例 #7
0
ファイル: CoinTests.cs プロジェクト: punker76/PacMan
 public CoinTests()
 {
     _gameSettings = new TestGameSettings();
     _gameClock    = new TestGameClock();
 }
コード例 #8
0
 public PowerPillTests()
 {
     _gameSettings = new TestGameSettings();
     _gameClock    = new TestGameClock();
 }
コード例 #9
0
ファイル: LivesTests.cs プロジェクト: pgillett/PacMan
 public LivesTests()
 {
     _gameSettings = new TestGameSettings();
     _gameClock    = new TestGameClock();
 }
コード例 #10
0
ファイル: GhostTests.cs プロジェクト: punker76/PacMan
 public GhostTests()
 {
     _gameSettings = new TestGameSettings();
     _gameClock    = new TestGameClock();
 }
コード例 #11
0
 public BonusLivesTests()
 {
     _now       = DateTime.UtcNow;
     _gameClock = new TestGameClock();
     _numberOfNotificationsTriggered = 0;
 }