
Habe zwar bereits einiges in diesem Forum mitgelesen, aber dies ist nun mein erster eigener Beitrag hier.
Es geht um mein allererstes Programm - Ein "number-guessing-game".
Mein Problem besteht darin, dass die variable "player_name" im Laufe des Programms plötzlich nicht mehr definiert ist.
Insgesamt habe ich 3 functions definiert.
In der ersten "name_input" lasse ich den user seinen Namen eingeben und prüfe, ob die Eingabe nur aus Buchstaben besteht. Ist dies der Fall, begrüße ich den User. --> Das funktioniert auch, somit ist die Variable "player_name" noch definiert.
Im Folgenden habe ich die zweite function "wanna_play", in der ich den user frage, ob er noch einmal spielen möchte.
--> in dieser function möchte ich den user erneut mit Namen ansprechen, doch hier ist "player_name" nicht mehr definiert.
Die dritte function ist das "guessing_game" an sich.
In dieser wiederum befindet sich die zweite function.
Das Programm hat komplett funktioniert, bis ich in der "name_input" function die Eingabe auf ausschließlich alphanumerische Zeichen geprüft habe.
Das Prüfen etc. in der "name_input" function an sich funktioniert auch, nur zerschießt es mit dann den "player_name" in der function "wanna_play", was ich nicht verstehe.
Ich hoffe ich habe alles verständlich beschrieben, freue mich auf euren Input und hänge meinen Code noch an.
(in der Vorschau sehe ich gerade, dass keine indentation berücksichtigt wird. Die sollte aber passen, der einzige Error ist der "Name Error")
Lieben Dank im Voraus und beste Grüße!
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
import random
print("\n\n-----------------------")
print("Hello, that's a little number-guessing game.")
print("Choose a number from 1 to 10 and we will see, if you're right.")
print("You have 3 tries. Choose whisely.")
print("-----------------------\n\n")
def name_input():
player_name = input("Please enter your name: ")
if player_name.isalpha() == True:
print("\n\nHello " + player_name.capitalize() + " - Good luck!")
else:
print("So, you're a robot, hm?\n\n")
name_input()
name_input()
def wanna_play():
play_again = str(input("Do you wanna play again? (y/n): "))
if play_again.lower() == "y":
print("\nGood decision, " + player_name.capitalize() + ". Let's try again

guessing_game() # name 'player_name' is not defined
elif play_again.lower() == "n":
print("\nWhat a pity, but see you next time!

else:
print("That's not a valid input. Please type yes or no\n")
wanna_play()
def guessing_game():
secret_number = random.randint(1,10)
guess_count = 0
while guess_count < 3:
guess_count += 1
try:
guess = int(input("\nMake a guess: "))
if guess == secret_number:
break
else:
print("\nNope, I said: 'Choose whisely'!")
if guess < secret_number:
print("But here's a little hint: ")
print("The secret number ist bigger than your guess.")
else:
print("But here's a little hint: ")
print("The secret number is smaller than your guess.")
except ValueError:
print("You're a prankster.... We're looking for numbers!")
guess_count -= 1
if guess_count == 3 and guess != secret_number:
print(str("\n+++ You LOSE! No more guesses. +++"))
print("The secret number was " + str(secret_number) + ".\n\n")
if guess == secret_number:
print("\n+++ Wow! That was right. You WIN! +++")
print(("+++++++ You needed " + str(guess_count) + " /3 tries +++++++\n\n"))
wanna_play()
guessing_game()