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); } }
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()); }