First post so please be gentle...
I'm putting a counter to count the rounds for each of the battles below but even though I give counter a value of 1 as the code starts, but when I look to add to this later in my loop, an error message suggests I'm referencing it before a value has been assigned?
I've played around with where I place the counter but I don't want to put it inside a loop as it'll just reset to '1' everytime...
import random
import time
import os
def character():
  name = input("Name your Legend: ")
  type = input("Character Type (Human, Elf, Wizard, Orc): ")
  return name
  return type
def rollDice(sides):
  number = random.randint(1,sides)
  return number
def health():
  diceOne = rollDice(6)
  diceTwo = rollDice(12)
  healthStat = ((diceOne * diceTwo / 2) + 10)
  return healthStat
def strength():
  diceOne = rollDice(6)
  diceTwo = rollDice(12)
  strengthStat = ((diceOne * diceTwo / 2) + 12)
  return strengthStat
print("## WELCOME TO THE ARENA ##")
print()
time.sleep(1) 
counter = 1
while True:
  charOne = character()
  charOneHealth = health()
  charOneStrength = strength()
  print()
  time.sleep(1)
  print("All hail" , charOne)
  print("HEALTH: " , charOneHealth)
  print("STRENGTH: " , charOneStrength)
  print()
  print("And who are they battling?")
  print()
  charTwo = character()
  charTwoHealth = health()
  charTwoStrength = strength()
  print()
  print("Please welcome" , charTwo)
  print("HEALTH: " , charTwoHealth)
  print("STRENGTH: ", charTwoStrength)
  time.sleep(2)
  os.system("clear")
  break
  
def battle(charOneStrength, charTwoStrength, charOneHealth, charTwoHealth):
  counter += 1
  charOneDice = rollDice(6)
  charTwoDice = rollDice(6)
  damage = (charOneStrength - charTwoStrength) + 1
  if charOneDice > charTwoDice:
    print(charOne , "strikes!")
    print(charTwo , "takes a hit, with " , damage , "damage")
    charTwoDamage = charTwoHealth - damage
    return charTwoDamage
  elif charTwoDice > charOneDice:
    print(charTwo , "strikes!")
    print(charOne , "takes a hit, with " , damage , "damage")
    charOneDamage = charOneHealth - damage
    return charOneDamage
  elif charOneDice == charTwoDice:
    print("It's a draw!")
    draw = True
    return draw
  
while True:
  print("## TIME TO FIGHT! ##")
  print()
  print("Round" , counter)
  print()
  battle(charOneStrength, charTwoStrength, charOneHealth, charTwoHealth)
  print(charOne)
  print("HEALTH: " , charOneHealth)
  print()
  print(charTwo)
  print("HEALTH: " , charTwoHealth)
  print()
  if charOneHealth < 0:
    print("Oh no!" , charOne , "has died!")
    print(charTwo , "killed" , charOne , "in" , counter , "rounds")
    exit
  elif charTwoHealth< 0:
    print("Yikes!" , charTwo , "has died!")
    print(charOne , "killed" , charTwo , "in" , counter , "rounds")
    exit
  else:
    print("They go again...")
    continue
I've had a search on here but can't seem to find an exact answer that solves the above.
