input: Write a python function to create a 5x5 game board with a single ship placed randomly and allow a player to make guesses on its location. If the player hits the ship, the board should show "<hit>", otherwise "<miss>". Use the `Board`, `place_ship`, and `battle` functions.
  ```python
  import random
  
  class Board:
      def __init__(self, rows, cols):
          self.rows = rows
          self.cols = cols
          self.grid = [['_' for x in range(cols)] for y in range(rows)]
  
      def print_board(self):
          for row in self.grid:
              print(' '.join(row))
  
  def place_ship(ship, board):
      while True:
          row = random.randint(0, board.rows-1)
          col = random.randint(0, board.cols-1)
          if board.grid[row][col] == '_':
              board.grid[row][col] = ship
              break
  
  def battle(player, board):
      while True:
          row = input('Enter a row: ')
          col = input('Enter a column: ')
          if board.grid[int(row)][int(col)] == '_':
              board.grid[int(row)][int(col)] = '<miss>'
              player.miss += 1
              print('Miss!')
          elif board.grid[int(row)][int(col)] == 'BB':
              board.grid[int(row)][int(col)] = '<hit>'
              print('Hit!')
          else:
              break
  
  class Player:
      def __init__(self, ship, miss):
          self.ship = ship
          self.miss = miss
  
  # Create a board
  board = Board(5, 5)
  
  # Place ships on the board
  place_ship('BB', board)
  
  # Create a player object
  player = Player('BB', 0)
  
  # Start the game
  battle(player, board)
  
  # Print the board
  board.print_board()
  ```
  
  assert isinstance(board, Board)
  assert len(board.grid) == 5
  assert len(board.grid[0]) == 5
  assert sum(row.count('BB') for row in board.grid) == 1
output: def battle(player, board):
      while True:
          row = input('Enter a row: ')
          col = input('Enter a column: ')
          if board.grid[int(row)][int(col)] == '_':
              board.grid[int(row)][int(col)] = '<miss>'
              player.miss += 1
              print('Miss!')
          elif board.grid[int(row)][int(col)] == 'BB':
              board.grid[int(row)][int(col)] = '<hit>'
              print('Hit!')
              break
  
  class Player:
      def __init__(self, ship, miss):
          self.ship = ship
          self.miss = miss
  
  # Create a board
  board = Board(5, 5)
  
  # Place ships on the board
  place_ship('BB', board)
  
  # Create a player object
  player = Player('BB', 0)
  
  # Start the game
  battle(player, board)
  
  # Print the board
  board.print_board()