private static void battle(Adventurer player, AbstractCreature opponent) {
    System.out.println("You're battling a " + opponent.toString());

    Scanner scanner = new Scanner(System.in);

    while (player.getHealth() > 0 && opponent.getHealth() > 0) {
      String action = null;

      while (!VALID_ACTIONS.contains(action)) {
        System.out.println("What would you like to do?");
        for (String validAction : VALID_ACTIONS) {
          System.out.println("\t" + validAction);
        }

        action = scanner.next();

        /*
            TODO:
            If the action is "attack", call the player's attack function
            on the opponent.
            If the action is "check_inventory", call the player's
            print_inventory function.
            If the action is "check_health", call the player's print_health
            function
            If the command isn't one of these, tell the user that
            the command is invalid and that they should try again.

            There are two ways to write this. Either will work :D
        */
      }

      if (opponent.getHealth() <= 0) {
        // TODO: The player should loot the opponent
        System.out.println("Congratuations! You slayed " + opponent.toString());
        return;
      }

      opponent.attack(player);

      if (player.getHealth() <= 0) {
        // TODO: Print to the screen that the player died
        System.exit(0);
      }
    }

    scanner.close();
  }