Werte der Liste werden um eins Verschoben
Verfasst: Donnerstag 18. März 2021, 21:04
Programmiere zu Übungszwecken ein TicTacToe in Python. Problem nur ab dem 3 Zug werden meine Werte in der Liste ab stelle 4 immer um eins weiter geschoben. Beduetet wenn ich bei feld[4] = "0" habe und der dritte zug gemacht wird ist die 0 von Feld 4 auf einmal bei 5 und ich habe absolut keine Ahnung warum. Da Problem zieht sich dann so weiter über den restlichen Spielverlauf. Wäre cool wenn mir einer helfen könnte.
Danke im Vorraus

Danke im Vorraus

Code: Alles auswählen
def felderstellen():
feld = [' ',' ',' ',
' ',' ',' ',
' ',' ',' ']
return feld
def feldausgabe(feld):
felder = 0
spalte = 3
zeile = 3
for y in range(zeile):
print("\n")
for x in range(spalte):
print("|",feld[felder],"| ", end="")
felder = felder+1
print("\n")
def feldbefüllen(feld,zuege):
while True:
if zuege == 0 or zuege % 2 == 0:
eingabe = input("Spieler X. Wälen Sie ein Feld: ")
try:
eingabe = int(eingabe)
feld.insert(eingabe-1, "X")
return feld
except ValueError:
print("Bitte eine Zahl von 1-9")
elif zuege == 1 or zuege % 2 != 0:
eingabe = input("Spieler O. Wälen Sie ein Feld: ")
try:
eingabe = int(eingabe)
feld.insert(eingabe-1,"O")
return feld
except ValueError:
print("Bitte eine zahl von 1-9")
def gewinner(feld,zuege):
zZeilen=0
zSpalten=0
zDiagonal=0
if zuege < 3:
return
else:
for i in range(2):
#Zeilen
if feld[0+zZeilen]==feld[1+zZeilen]==feld[2+zZeilen]:
print("Speieler", feld[0+zZeilen]," hat Gewonnen")
#Spalten
elif feld[0+zSpalten]==feld[3+zSpalten]==feld[6+zSpalten]:
print("Spieler ",feld[0+zSpalten], " hat Gewonnen")
#Diagonal
elif feld[0+zDiagonal]==feld[4]==feld[8-zDiagonal]:
print("Spieler ",feld[0+zDiagonal], " hat Gewonnen")
zZeilen = zZeilen+3
zSpalten = zSpalten+1
zDiagonal=zDiagonal+2
if __name__ == '__main__':
#Feld erstellen
feld = felderstellen()
feldausgabe(feld)
for zuege in range(9):
if zuege <=8:
feldbefüllen(feld,zuege)
feldausgabe(feld)
#Überprüfung
gewinner(feld,zuege)
zuege = zuege+1
else:
print("Keiner hat gewonnen")