static void Main(string[] args) { var firstPlayer = new RandomComputerPlayer { Name = "Fred", Banter = "Fred makes his move..." }; var secondPlayer = new RandomComputerPlayer { Name = "Joe", Banter = "Joe strikes back..." }; new Game(new OutputAdapter(new ConsoleOutputWriter()), new TicTacToeEngine(), firstPlayer, secondPlayer, 1000).Start(); }
public void RandomMoveGeneratorIsCalledOnceWhenGettingComputerMove() { // Arrange var mockRandomMoveGenerator = new Mock <IRandomMoveGenerator>(); var randomComputerPlayer = new RandomComputerPlayer(mockRandomMoveGenerator.Object); //Act randomComputerPlayer.GetComputerMove(); // Assert mockRandomMoveGenerator.Verify(m => m.GenerateRandomMove(), Times.Once); }
public void WhenRecursivelyGivenInputList_ThenItShouldReferenceEveryItemInThatListOnlyOnce() { // Arrange var input = new[] { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' }; var player = new RandomComputerPlayer(); // Act var result = new List <int>(); for (var i = 0; i < input.Length; i++) { result.Add(player.MakeMove(input)); } // Assert result.Sort(); var expected = new List <int>() { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; }
public static IPlayer Create(PlayerTypeEnum type, GamePlayerEnum gamePlayer) { IPlayer player = new RandomComputerPlayer(); player.Description = "RANDOM COMPUTER"; if (type == PlayerTypeEnum.Human) { player = new HumanPlayer(); player.Description = "HUMAN"; } if (type == PlayerTypeEnum.TaticalComputer) { player = new TaticalComputerPlayer(); player.Description = "TATICAL COMPUTER"; } player.Index = (int)gamePlayer; return(player); }
static bool TryCreatePlayer(string type, int number, out Player player) { switch (type) { case "H": player = new HumanPlayer(number); break; case "R": player = new RandomComputerPlayer(number); break; case "T": player = new TacticalComputerPlayer(number); break; default: player = null; break; } return(player != null); }