public void ShouldStartTheScoreOnZeroZeroForBothTeams() { ITicTacToeGame subject = fixture.Create <TicTacToeGame>(); subject.Scores[Team.Zero].Should().Be(0); subject.Scores[Team.Cross].Should().Be(0); }
public void ShouldNotIncrementTheScoreWhenThereIsADraw() { Action <GameFinishedArgs> gameFinished = null; Team actualWinningTeam = Team.None; LineWin actualLineWin = LineWin.None; mockBoard.SetupSet <Action <GameFinishedArgs> >(x => x.GameFinished = It.IsAny <Action <GameFinishedArgs> >()) .Callback((x) => { gameFinished = x; }); ITicTacToeGame subject = fixture.Create <TicTacToeGame>(); subject.TeamAndLineWon += (ValueTuple <Team, LineWin> arg) => { actualWinningTeam = arg.Item1; actualLineWin = arg.Item2; }; subject.IsGameOver.Should().BeFalse(); gameFinished?.Invoke(new GameFinishedArgs(GameResult.Draw, null, LineWin.None)); subject.Scores[mockBoard.Object.PlayerOne.Team].Should().Be(0); subject.Scores[mockBoard.Object.PlayerTwo.Team].Should().Be(0); actualWinningTeam.Should().Be(Team.None); actualLineWin.Should().Be(LineWin.None); }
public void ShouldShowWhichTeamAndLineWonAndThatTheGameIsOver() { Action <GameFinishedArgs> gameFinished = null; Team actualWinningTeam = Team.None; LineWin actualLineWin = LineWin.None; #pragma warning disable CS0618 mockBoard.SetupSet(x => x.GameFinished).Callback((x) => #pragma warning restore CS0618 { gameFinished = x; }); ITicTacToeGame subject = fixture.Create <TicTacToeGame>(); subject.TeamAndLineWon += (ValueTuple <Team, LineWin> arg) => { actualWinningTeam = arg.Item1; actualLineWin = arg.Item2; }; subject.IsGameOver.Should().BeFalse(); gameFinished?.Invoke(new GameFinishedArgs(GameResult.Win, mockBoard.Object.PlayerOne, LineWin.MiddleHorizontal)); actualWinningTeam.Should().Be(mockBoard.Object.PlayerOne.Team); actualLineWin.Should().Be(LineWin.MiddleHorizontal); subject.IsGameOver.Should().BeTrue(); }
private void InitializeTicTacToeGame() { this.ticTacToeGame = TicTacToeFactory.Create(Team.Zero); ticTacToeGame.ScoreChanged += OnScoreChanged; ticTacToeGame.TeamAndLineWon += OnTeamAndLineWon; ticTacToeGame.TeamChanged += OnTeamChanged; }
public void Run() { var returnCode = 2; while (returnCode == 2) { returnCode = _game.Start(); //Code : on quite if (returnCode == 0) { _game_repository.Delete(); } //[1] Code : on quitte en sauvegardant //Code : lancement d'une nouvelle partie if (returnCode == 2) { _displayer.Clear(); _displayer.Show("Lancement d'une nouvelle partie !"); _game_repository.Delete(); _game_model = _game_factory.Create(NUMBER_ROUND); _game = new TicTacToeGame(_reader, _displayer, _formatter, _player_factory, _round_factory, _game_model, _game_repository); } } }
public void ShouldResetTheBoardWithPlayerOneSetAsCross() { ITicTacToeGame subject = fixture.Create <TicTacToeGame>(); subject.Reset(); mockBoard.Verify(x => x.Reset(It.IsAny <Team>()), Times.Once); }
public TicTacToeAction GetAction(ITicTacToeGame game) { return(new TicTacToeAction { Tile = Tile, Position = _moves.Dequeue() }); }
public void ShouldUseTheBoardToMakeAMove(BoardPosition position) { ITicTacToeGame subject = fixture.Create <TicTacToeGame>(); subject.Move(position); mockBoard.Verify(x => x.Move(It.Is <BoardPosition>(pos => pos == position)), Times.Once); }
public MainWindow(ITicTacToeGame ticTacToeGame) { this.ticTacToeGame = ticTacToeGame; ticTacToeGame.ScoreChanged += OnScoreChanged; ticTacToeGame.TeamAndLineWon += OnTeamAndLineWon; ticTacToeGame.TeamChanged += OnTeamChanged; InitializeComponent(); InitializeBitmapImages(); OnTeamChanged(currentTeam); ClearImages(); }
public void ShouldIncrementTheScoreWhenATeamWins() { Action <GameFinishedArgs> gameFinished = null; mockBoard.SetupSet <Action <GameFinishedArgs> >(x => x.GameFinished = It.IsAny <Action <GameFinishedArgs> >()) .Callback((x) => { gameFinished = x; }); ITicTacToeGame subject = fixture.Create <TicTacToeGame>(); gameFinished?.Invoke(new GameFinishedArgs(GameResult.Win, mockBoard.Object.PlayerOne, LineWin.RightDiagonal)); subject.Scores[mockBoard.Object.PlayerOne.Team].Should().Be(1); }
public void ShouldIncrementTheScoreWhenATeamWins() { Action <GameFinishedArgs> gameFinished = null; // Cant get it to work with new methods because of // https://github.com/moq/moq4/issues/218 #pragma warning disable CS0618 // Type or member is obsolete mockBoard.SetupSet(x => x.GameFinished).Callback((x) => #pragma warning restore CS0618 // Type or member is obsolete { gameFinished = x; }); ITicTacToeGame subject = fixture.Create <TicTacToeGame>(); gameFinished?.Invoke(new GameFinishedArgs(GameResult.Win, mockBoard.Object.PlayerOne, LineWin.RightDiagonal)); subject.Scores[mockBoard.Object.PlayerOne.Team].Should().Be(1); }
public TicTacToeRunner (IReader reader, IDisplayer displayer, IBoardFormatter formatter, IPlayerFactory player_factory, IRoundFactory round_factory, IGameFactory game_factory, IGameRepository game_repository) { _reader = reader; _displayer = displayer; _game_repository = game_repository; _game_factory = game_factory; _formatter = formatter; _round_factory = round_factory; _player_factory = player_factory; //on charge la partie dans le repo _game_model = _game_repository.Load(); if(_game_model == null) _game_model = game_factory.Create (NUMBER_ROUND); _game = new TicTacToeGame (_reader, _displayer, formatter, player_factory, round_factory, _game_model, _game_repository); }
public TicTacToeRunner(IReader reader, IDisplayer displayer, IBoardFormatter formatter, IPlayerFactory player_factory, IRoundFactory round_factory, IGameFactory game_factory, IGameRepository game_repository) { _reader = reader; _displayer = displayer; _game_repository = game_repository; _game_factory = game_factory; _formatter = formatter; _round_factory = round_factory; _player_factory = player_factory; //on charge la partie dans le repo _game_model = _game_repository.Load(); if (_game_model == null) { _game_model = game_factory.Create(NUMBER_ROUND); } _game = new TicTacToeGame(_reader, _displayer, formatter, player_factory, round_factory, _game_model, _game_repository); }
public void ShouldSwapToWhichEverTeamIsActivated() { Team activeTeam = Team.None; Action <PlayerSwappedArgs> playerSwapped = null; mockBoard.SetupSet <Action <PlayerSwappedArgs> >(x => x.PlayerSwapped = It.IsAny <Action <PlayerSwappedArgs> >()) .Callback((x) => { playerSwapped = x; }); ITicTacToeGame subject = fixture.Create <TicTacToeGame>(); subject.TeamChanged += (Team team) => { activeTeam = team; }; playerSwapped?.Invoke(new PlayerSwappedArgs(playerOne)); activeTeam.Should().Be(playerOne.Team); }
public void ShouldSwapToWhichEverTeamIsActivated() { Team activeTeam = Team.None; Action <PlayerSwappedArgs> playerSwapped = null; #pragma warning disable CS0618 mockBoard.SetupSet(x => x.PlayerSwapped).Callback((x) => #pragma warning restore CS0618 { playerSwapped = x; }); ITicTacToeGame subject = fixture.Create <TicTacToeGame>(); subject.TeamChanged += (Team team) => { activeTeam = team; }; playerSwapped?.Invoke(new PlayerSwappedArgs(playerOne)); activeTeam.Should().Be(playerOne.Team); }
public static void PrintGame(ITicTacToeGame game, double score) { Console.Clear(); Console.WriteLine(game.CurrentPlayer.ToString() + " Turn"); Console.WriteLine(); for (var i = 0; i < game.Board.Size; i++) { for (var j = 0; j < game.Board.Size; j++) { var playerSymbol = GetPlayerSymbol(game.Board.Cells[i][j]); Console.Write("{0} ", playerSymbol); } Console.WriteLine(); } Console.WriteLine(); Console.WriteLine("Player 1 Score: " + (game.CurrentPlayer == PlayerEnum.Player1 ? score : -score)); Console.WriteLine("Player 2 Score: " + (game.CurrentPlayer == PlayerEnum.Player2 ? score : -score)); }
public void ShouldShowWhichLineWon() { Action <GameFinishedArgs> gameFinished = null; Team actualWinningTeam = Team.None; LineWin actualLineWin = LineWin.None; mockBoard.SetupSet <Action <GameFinishedArgs> >(x => x.GameFinished = It.IsAny <Action <GameFinishedArgs> >()) .Callback((x) => { gameFinished = x; }); ITicTacToeGame subject = fixture.Create <TicTacToeGame>(); subject.TeamAndLineWon += (ValueTuple <Team, LineWin> arg) => { actualWinningTeam = arg.Item1; actualLineWin = arg.Item2; }; gameFinished?.Invoke(new GameFinishedArgs(GameResult.Win, mockBoard.Object.PlayerOne, LineWin.MiddleHorizontal)); actualLineWin.Should().Be(LineWin.MiddleHorizontal); }
public void Run () { var returnCode = 2; while (returnCode == 2) { returnCode = _game.Start (); //Code : on quite if (returnCode == 0) { _game_repository.Delete (); } //[1] Code : on quitte en sauvegardant //Code : lancement d'une nouvelle partie if (returnCode == 2) { _displayer.Clear (); _displayer.Show ("Lancement d'une nouvelle partie !"); _game_repository.Delete (); _game_model = _game_factory.Create (NUMBER_ROUND); _game = new TicTacToeGame (_reader, _displayer, _formatter, _player_factory, _round_factory, _game_model, _game_repository); } } }
public TicTacToeGameController(ITicTacToeGame ticTacToeGame, IPauseHelper pauseHelper) { _ticTacToeGame = ticTacToeGame; _pauseHelper = pauseHelper; }