input: def solve_hanoi_game(n: int, source: List[Tuple[int, str]], spare: List[Tuple[int, str]], target: List[Tuple[int, str]]) -> None:
      """Solves the Towers of Hanoi game by moving `n` disks from the `source` rod to
      the `target` rod using the `spare` rod as an intermediate. Prints the moves
      required to solve the game.
      
      Example:
      starting = [(1, "A"), (4, "A"), (7, "A"), (2, "A"), (5, "A"), (8, "A"), (3, "A"), (6, "A")]
      solve_hanoi_game(8, starting, [], [])
      """
      if n == 1:
          disk = source.pop(0)
          print("Moving disk {0} from {1} to {2}".format(disk[0], disk[1], target[1]))
          target.insert(0, disk)
      else:
          solve_hanoi_game(n-1, source, target, spare)
          disk = source.pop(0)
          print("Moving disk {0} from {1} to {2}".format(disk[0], disk[1], target[1]))
          target.insert(0, disk)
          solve_hanoi_game(n-1, spare, source, target)
output:     if n == 1:
          disk = source.pop(0)
          print("Moving disk {0} from {1} to {2}".format(disk[0], disk[1], target[1]))
          target.insert(0, disk)
      else:
          solve_hanoi_game(n-1, source, target, spare)
          disk = source.pop(0)
          print("Moving disk {0} from {1} to {2}".format(disk[0], disk[1], target[1]))
          target.insert(0, disk)
          solve_hanoi_game(n-1, spare, source, target)