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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
    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();
    }
Ejemplo n.º 7
0
 public void Setup()
 {
     player = new RandomAi(null, null);
 }
Ejemplo n.º 8
0
 public void WillReturnItsPlayerTypeAsItsUserId()
 {
     player = new RandomAi(null, null);
     Assert.AreEqual(player.getUserId(), (int)PlayerType.RANDOM);
 }