public void WillSetTheReturnedValueFromPlayerCreationToTheTile() { Mock <IPlayerCreationService> mockService = new Mock <IPlayerCreationService>(MockBehavior.Loose); Tile tile = new Tile(); Player p = new RandomAi(null, null); tile.owner = 0; mockService.Setup(x => x.createPlayer(It.IsAny <JObject>())).Returns(p); service = new UltimateTicTacToeCreationService(new Mock <IWinChecker>().Object); List <List <JObject> > board = new List <List <JObject> > { new List <JObject> { JObject.FromObject(tile) } }; Move move = new Move(); move.next = new Move(); TicTacToe game = service.createBoardGame(new BoardGameDTO { game = board, lastMove = move }) as TicTacToe; Assert.AreEqual((PlayerColour)0, (game.board[0][0] as Tile).owner); }
public void WillUseTheIndexReturnedByTheRandomServiceToPickItsMove() { Mock <IRandomService> mock = new Mock <IRandomService>(MockBehavior.Strict); mock.Setup(x => x.getRandomNumberBetween(0, 3)).Returns(1); Mock <IDatabaseProvider> mockProvider = new Mock <IDatabaseProvider>(); mockProvider.Setup(x => x.getUser(It.IsAny <int>())) .Returns(new RatingDTO()); player = new RandomAi(mock.Object, mockProvider.Object); Move move = new Move(); move.possition = new Point2D { X = 1, Y = 1 }; Mock <INode> mockNode = new Mock <INode>(); mockNode.Setup(x => x.getMove()) .Returns(move); Mock <BoardGame> mockGame = new Mock <BoardGame>(MockBehavior.Strict); mockGame.Setup(x => x.makeMove(move)); INode result = player.makeMove(mockGame.Object, new List <INode> { null, mockNode.Object, null }, 0); Assert.AreSame(result.getMove(), move); }
public void WillPassTheLengthOfThePossibleMovesListAndZeroToRandomService() { Mock <IRandomService> mock = new Mock <IRandomService>(MockBehavior.Strict); mock.Setup(x => x.getRandomNumberBetween(0, 3)).Returns(0); Mock <IDatabaseProvider> mockProvider = new Mock <IDatabaseProvider>(); mockProvider.Setup(x => x.getUser(It.IsAny <int>())) .Returns(new RatingDTO()); player = new RandomAi(mock.Object, mockProvider.Object); Move move = new Move(); Mock <BoardGame> mockGame = new Mock <BoardGame>(MockBehavior.Strict); mockGame.Setup(x => x.makeMove(move)); Mock <INode> mockNode = new Mock <INode>(); mockNode.Setup(x => x.getMove()) .Returns(new Move()); List <INode> nodes = new List <INode> { mockNode.Object, mockNode.Object, mockNode.Object }; player.makeMove(mockGame.Object, nodes, 0); mock.Verify(m => m.getRandomNumberBetween(0, 3), Times.Once); }
public void WillPassRandomServiceToAi() { Mock <IRandomService> mockService = new Mock <IRandomService>(); hand = new RandomPlayerClassHandler(mockService.Object, null); RandomAi player = hand.createPlayer(PlayerType.RANDOM) as RandomAi; Assert.IsNotNull(player.random); }
public void WillSetItselfAsTheOwnerOfTheMove() { Mock <BoardGame> mockGame = new Mock <BoardGame>(MockBehavior.Loose); Mock <IRandomService> mock = new Mock <IRandomService>(MockBehavior.Loose); Mock <IDatabaseProvider> mockProvider = new Mock <IDatabaseProvider>(); mockProvider.Setup(x => x.getUser(It.IsAny <int>())) .Returns(new RatingDTO()); player = new RandomAi(mock.Object, mockProvider.Object); player.colour = (PlayerColour)1000; Mock <INode> mockNode = new Mock <INode>(); Move move = new Move(); mockNode.Setup(x => x.getMove()) .Returns(move); INode result = player.makeMove(mockGame.Object, new List <INode> { mockNode.Object }, 0); Assert.IsTrue(result.getMove().owner == player.colour); }
public override void OnStart(Dictionary <string, object> args) { game = new Reversi(); if (args.ContainsKey("mode") && args["mode"] is string mode) { switch (mode) { case "Multiplayer": Mode = GameMode.MultiPlayer; break; case "SimpleAI": ai = new SimpleAi(game); Mode = GameMode.VsCpu; break; case "DynamicAI": Mode = GameMode.VsCpu; break; case "RandomAI": ai = new RandomAi(game); Mode = GameMode.VsCpu; break; default: break; } } boardView = new Container(); boardView.Scale *= 2; Root.Add(boardView); var title = new TextElement("リバーシするヤーツ", DFFont.GetDefault(32), Color.White) { Location = (32, 32) }; Root.Add(title); turn = new TextElement("のターン", DFFont.GetDefault(16), Color.White); Root.Add(turn); score = new TextElement("黒 / 白", DFFont.GetDefault(16), Color.White); Root.Add(score); tileStoneBlack = Tile.LoadFrom("resources/textures/stone-black.png"); tileStoneWhite = Tile.LoadFrom("resources/textures/stone-white.png"); tilePrompt = Tile.LoadFrom("resources/textures/prompt.png"); var backdrop = new Sprite("resources/textures/board.png"); boardView.Add(backdrop); stones = new Tilemap((16, 16)); boardView.Add(stones); aud.Play(bgmMain, 0); boardView.Location = (DF.Window.Size.X / 2 - 128, 96); Render(); }
public void Setup() { player = new RandomAi(null, null); }
public void WillReturnItsPlayerTypeAsItsUserId() { player = new RandomAi(null, null); Assert.AreEqual(player.getUserId(), (int)PlayerType.RANDOM); }