Esempio n. 1
0
        public async Task <ActionResult <bool> > Move(BoardRequest request)
        {
            Direction direction = request.direction.ToLower() == "whitegodown" ? Direction.WhiteGodown : Direction.WhiteGoup;
            GameBoard gameBoard = GameBoard.GetBoard(request.board, direction);

            Piece piece = gameBoard.GetSquare(request.coordChosen).piece;

            piece.GeneratePossibleMove();
            if (piece.possibleMoves.Contains(gameBoard.GetSquare(request.coordClick)))
            {
                Board board = await _context.boards.FindAsync(request.boardId);

                string opponentConnId = board.getOpponentIdentifier(request.userName);
                _hubContext.Clients.Client(opponentConnId)
                .SendAsync(
                    "OpponentMoving",
                    request.coordChosen.getMindSymmetry(),
                    request.coordClick.getMindSymmetry()
                    );
                return(true);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 2
0
        public ActionResult <Coord[]> GeneratePossibleMove(BoardRequest request)
        {
            Direction direction = request.direction.ToLower() == "whitegodown" ? Direction.WhiteGodown : Direction.WhiteGoup;
            GameBoard board     = GameBoard.GetBoard(request.board, direction);

            Piece piece = board.GetSquare(request.coordClick).piece;

            piece.GeneratePossibleMove();
            return(piece.possibleMoves.Select(square => square.coord).ToArray());
        }