I've been trying to do an assignment for my python exam and I got stuck on this problem. I've listed the full code bellow. I set the variable A1 to " " and later down the line I want to use the function player1_move to change the variables accordingly to the user's input. However I get errors saying that A1 is mentioned before being set. I think that python recognizes A1 as a local variable within the definition (sorry if I'm saying gibberish but I can't describe it more accurately). How can I fix this error? Code:
A1 = ""
A2 = " "
A3 = " "
B1 = " "
B2 = " "
B3 = " "
C1 = " "
C2 = " "
C3 = " "
def board():
print(f""" 1 2 3
A {A1}---{A2}---{A3}
|\ | /|
| \ | / |
| \|/ |
B {B1}---{B2}---{B3}
| /|\ |
| / | \ |
|/ | \|
G {C1}---{C2}---{C3}""")
board()
def player1_move(x):
if x.title() == "A1":
if A1 == " ":
A1 = "x"
board()
else:
print("This place is taken!" + "\nEnter another one!")
player1move1 = input("Player 1 moves first!" + "\nEnter your first move! :")
player1_move(player1move1)
Error:
Traceback (most recent call last):
File "/home/noname/Documents/PythonProjects/Assignment/dummy_file1.py", line 34, in <module>
player1_move(player1move1)
File "/home/noname/Documents/PythonProjects/Assignment/dummy_file1.py", line 27, in player1_move
if A1 == " ":
UnboundLocalError: local variable 'A1' referenced before assignment