ich habe mich mal an ein Praxisprojet "Tic Tac Toe" gewagt. Hat alles mit Internet und diesem sehr nettem Forum geklappt.

Nun zu meiner Frage: hat eventuell jemand Verbesserungsvorschläge? Zum Beispiel bei zu kompliziert geschriebenen Sachen oder einfach nur Tipps?
Dies ist mein erstes richtiges Programm. Davor habe ich schonmal Schwachsinn ausprobiert. ; D Aber nichts ernstes.
Ich habe schon eine Vermutung das wenn man hunderte Spiele spielt es zu Problemen kommen könnte da das Spiel nie wirklich beendet wird, sondern sich eher in sich selbst öffnet. Stimmt das?
Hier der Code:
Code: Alles auswählen
#written by Keoz
def empty ():
print("")
print("")
print("")
print("")
print("")
print("")
print("")
print("")
print("")
print("")
print("")
print("")
print("")
print("")
print("")
def menu ():
current_player = "null" #welcher Spieler ist an der Reihe
current_player = input("Which player should start? X or O:")
if current_player == "X" or current_player == "O": #Spielstart
empty()
print('If you want to restart the game write "stop".')
print("")
game(current_player)
if current_player != "X" or "O": #falsche Eingabe
empty()
print("WRONG INPUT!")
menu()
def game (var):
stopvar = 1
current_player = var
one = "1"
two = "2"
tree = "3"
four = "4"
five = "5"
six = "6"
seven = "7"
eight = "8"
nine = "9"
while stopvar == 1: #Spielfeld
print(seven + " | " + eight + " | " + nine)
print(four + " | " + five + " | " + six)
print(one + " | " + two + " | " + tree)
print("")
playerinput = input("It's your turn " + current_player + ":")
if playerinput == "stop": #spielstop
empty()
print("The game has been stopped.")
print("")
menu()
if playerinput == one or playerinput == two or playerinput == tree or playerinput == four or playerinput == five or playerinput == six or playerinput == seven or playerinput == eight or playerinput == nine:
#Gültigkeitsabfrage
empty()
if playerinput == "1": #XO zuweisung
one = current_player
elif playerinput == "2":
two = current_player
elif playerinput == "3":
tree = current_player
elif playerinput == "4":
four = current_player
elif playerinput == "5":
five = current_player
elif playerinput == "6":
six = current_player
elif playerinput == "7":
seven = current_player
elif playerinput == "8":
eight = current_player
elif playerinput == "9":
nine = current_player
else:
empty()
print("WRONG INPUT!")
continue
if one == two == tree: #gewinner bestimmung
won(current_player)
elif four == five == six:
won(current_player)
elif seven == eight == nine:
won(current_player)
elif seven == four == one:
won(current_player)
elif eight == five == two:
won(current_player)
elif nine == six == tree:
won(current_player)
elif seven == five == tree:
won(current_player)
elif nine == five == one:
won(current_player)
else:
if current_player == "X": #spielertausch
current_player = "O"
else:
current_player = "X"
if "1" != one and "2" != two and "3" != tree and "4" != four and "5" != five and "6" != six and "7" != seven and "8" != eight and "9" != nine:
tie() #unentschieden bestimmung
else:
empty()
print("WRONG INPUT!")
def won (var): #gewonnen
current_player = var
print('Player "' + current_player + '" won the game!')
print("")
menu()
def tie (): #unentschieden
print("It's a tie. I'm sorry.")
print("")
menu()
menu()
Gruß Jakob