예제 #1
0
        private static void MakeNonWinningMove(Game game, int columnNumber, bool isYellow)
        {
            var board = new BoardAPI(Game.NUMBER_OF_COLUMNS, Game.NUMBER_OF_ROWS);

            board.MakeMove(game.Cells, columnNumber, isYellow);
            Assert.IsFalse(board.WasWinningMove(game.Cells, columnNumber, isYellow));
        }
예제 #2
0
        public void CheckHeightOfEmptyColumnIs0()
        {
            var game         = new Game();
            var board        = new BoardAPI(10, 8);
            var actualResult = board.GetHeightOfColumn(game.Cells, 1);

            Assert.AreEqual(0, actualResult);
        }
예제 #3
0
        public void CheckNewBoardIsNotFull()
        {
            var game         = new Game();
            var board        = new BoardAPI(Game.NUMBER_OF_COLUMNS, Game.NUMBER_OF_ROWS);
            var actualResult = board.IsBoardFull(game.Cells);

            Assert.IsFalse(actualResult);
        }
예제 #4
0
파일: API.cs 프로젝트: yvanwang1992/Huaban
 private API()
 {
     OAuthorAPI  = new OAuthorAPI("");
     UserAPI     = new UserAPI("");
     CategoryAPI = new CategoryAPI("");
     PinAPI      = new PinAPI("");
     BoardAPI    = new BoardAPI("");
 }
예제 #5
0
        public void TestMoveCanBeMadeToValidColumn()
        {
            var game  = new Game();
            var board = new BoardAPI(10, 8);

            var actualResult = board.IsMoveAllowed(game.Cells, 1) && board.IsMoveAllowed(game.Cells, Game.NUMBER_OF_COLUMNS - 1);

            Assert.IsTrue(actualResult);
        }
예제 #6
0
        public void TestMoveCannotBeMadeToInvalidNegativeColumn()
        {
            var game  = new Game();
            var board = new BoardAPI(10, 8);

            var actualResult = board.IsMoveAllowed(game.Cells, -1);

            Assert.IsFalse(actualResult);
        }
예제 #7
0
        public void TestMoveCannotBeMadeToInvalidPostiveColumn()
        {
            var game  = new Game();
            var board = new BoardAPI(Game.NUMBER_OF_COLUMNS, Game.NUMBER_OF_ROWS);

            //valid is 0...n-1
            var actualResult = board.IsMoveAllowed(game.Cells, Game.NUMBER_OF_COLUMNS);

            Assert.IsFalse(actualResult);
        }
예제 #8
0
        public async Task <ActionResult <BoardAPI> > CreateBoard(BoardAPI board)
        {
            if (board == null)
            {
                return(BadRequest());
            }
            var boardTmp = await domain.CreateBoard(mapper.Map <BoardDTO>(board));

            return(mapper.Map <BoardAPI>(boardTmp));
        }
예제 #9
0
        public void CheckPlayingANewBoardIsNotAWin()
        {
            var game = new Game();


            var board = new BoardAPI(Game.NUMBER_OF_COLUMNS, Game.NUMBER_OF_ROWS);

            board.MakeMove(game.Cells, 1, true);
            var actualResult = board.WasWinningMove(game.Cells, 1, true);

            Assert.IsFalse(actualResult);
        }
예제 #10
0
        public void CheckHeightOfPlayedColumnIsCorrect()
        {
            var game  = new Game();
            var board = new BoardAPI(10, 8);

            board.MakeMove(game.Cells, 1, true);
            board.MakeMove(game.Cells, 1, true);
            board.MakeMove(game.Cells, 1, true);

            var actualResult = board.GetHeightOfColumn(game.Cells, 1);

            Assert.AreEqual(3, actualResult);
        }
예제 #11
0
        public void CheckForWinningVerticalMove()
        {
            var game  = new Game();
            var board = new BoardAPI(Game.NUMBER_OF_COLUMNS, Game.NUMBER_OF_ROWS);

            board.MakeMove(game.Cells, 2, true);
            board.MakeMove(game.Cells, 2, true);
            board.MakeMove(game.Cells, 2, true);

            board.MakeMove(game.Cells, 2, true);
            var actualResult = board.WasWinningMove(game.Cells, 2, true);

            Assert.IsTrue(actualResult);
        }
예제 #12
0
        public async Task <ActionResult <string> > ChangeSecurity(int id, BoardAPI board)
        {
            if (id != board.Id)
            {
                return(BadRequest());
            }

            var response = await domain.UpdateBoard(mapper.Map <BoardDTO>(board));

            if (response > 0)
            {
                return($"{response} security Board updated");
            }
            return(BadRequest());
        }
예제 #13
0
        public PinListViewModel(Context context, Func <uint, int, Task <IEnumerable <Pin> > > _func)
            : base(context)
        {
            PinAPI             = ServiceLocator.Resolve <PinAPI>();
            BoardAPI           = ServiceLocator.Resolve <BoardAPI>();
            PinList            = new IncrementalLoadingList <Pin>(_func);
            SelecterVisibility = Visibility.Collapsed;

            QuickBoardChanged += (s, e) =>
            {
                InitQuickBoard();
            };

            InitQuickBoard();
        }
예제 #14
0
		public PinListViewModel(Context context, Func<uint, int, Task<IEnumerable<Pin>>> _func)
			: base(context)
		{
			PinAPI = ServiceLocator.Resolve<PinAPI>();
			BoardAPI = ServiceLocator.Resolve<BoardAPI>();
			PinList = new IncrementalLoadingList<Pin>(_func);
			SelecterVisibility = Visibility.Collapsed;

			QuickBoardChanged += (s, e) =>
			{
				InitQuickBoard();
			};

			InitQuickBoard();
		}
예제 #15
0
        public async override void OnNavigatedTo(HBNavigationEventArgs e)
        {
            try
            {
                var board = e.Parameter as Board;
                if (board == null || board == CurrentBoard)
                {
                    return;
                }

                CurrentBoard = await BoardAPI.GetBoard(board.board_id);

                await PinListViewModel.ClearAndReload();
            }
            catch (Exception ex)
            { }
        }
예제 #16
0
        public void CheckFullyPlayedBoardIsFull()
        {
            var game  = new Game();
            var board = new BoardAPI(Game.NUMBER_OF_COLUMNS, Game.NUMBER_OF_ROWS);

            for (int c = 0; c < Game.NUMBER_OF_COLUMNS; c++)
            {
                for (int r = 0; r < Game.NUMBER_OF_ROWS; r++)
                {
                    board.MakeMove(game.Cells, c, true);
                }
            }

            var actualResult = board.IsBoardFull(game.Cells);

            Assert.IsTrue(actualResult);
        }
예제 #17
0
        public void CheckForWinningDiagonalSWtoNE_Move()
        {
            var game  = new Game();
            var board = new BoardAPI(Game.NUMBER_OF_COLUMNS, Game.NUMBER_OF_ROWS);

            MakeNonWinningMove(game, 4, RED);
            MakeNonWinningMove(game, 4, YELLOW);
            MakeNonWinningMove(game, 4, RED);
            MakeNonWinningMove(game, 4, YELLOW);

            MakeNonWinningMove(game, 3, YELLOW);
            MakeNonWinningMove(game, 3, RED);
            MakeNonWinningMove(game, 3, YELLOW);

            MakeNonWinningMove(game, 2, RED);
            MakeNonWinningMove(game, 2, YELLOW);

            board.MakeMove(game.Cells, 1, YELLOW);
            var actualResult = board.WasWinningMove(game.Cells, 1, YELLOW);

            Assert.IsTrue(actualResult);
        }
예제 #18
0
        private async Task <IEnumerable <Pin> > GetData(uint startIndex, int page)
        {
            if (CurrentBoard == null)
            {
                return(new List <Pin>());
            }

            IsLoading = true;
            try
            {
                var list = await BoardAPI.GetPins(CurrentBoard.board_id, PinListViewModel.GetMaxPinID());

                foreach (var item in list)
                {
                    item.Width = PinListViewModel.ColumnWidth;
                    if (item.file != null)
                    {
                        item.Height = ((PinListViewModel.ColumnWidth - 0.8) * item.file.height / item.file.width);
                    }
                }
                if (list.Count == 0)
                {
                    PinListViewModel.PinList.NoMore();
                }
                else
                {
                    PinListViewModel.PinList.HasMore();
                }
                return(list);
            }
            catch (Exception ex)
            {
            }
            finally
            {
                IsLoading = false;
            }
            return(null);
        }