HardtbeatShow
Ensign
- Registriert
- Aug. 2020
- Beiträge
- 130
PYTHON
Guten Tag.
Habe mit viel Hilfe mal TicTacToe programmiert, in der Konsole.
Leider habe ich einen Fehler drinne und ich bekomme auch eine Fehlermeldung. Allerdings bin ich immer noch ratlos. Es handelt sich wohl um 1-2 Zeilen die keinen Sinn ergeben...
Ich wäre sehr dankbar wenn mir jemand den Fehler erklären könnte ^^
Problem: bei "q" wird ne Fehlermeldung ausgegeben. "q" soll das Spiel beenden.
Siehe Zeile 45
Grüße
Guten Tag.
Habe mit viel Hilfe mal TicTacToe programmiert, in der Konsole.
Leider habe ich einen Fehler drinne und ich bekomme auch eine Fehlermeldung. Allerdings bin ich immer noch ratlos. Es handelt sich wohl um 1-2 Zeilen die keinen Sinn ergeben...
Ich wäre sehr dankbar wenn mir jemand den Fehler erklären könnte ^^
Problem: bei "q" wird ne Fehlermeldung ausgegeben. "q" soll das Spiel beenden.
Siehe Zeile 45
Grüße
Python:
field = ["",
"1", "2", "3",
"4", "5", "6",
"7", "8", "9"]
def print_field():
print(field[1] + "|" + field[2] + "|" + field[3])
print(field[4] + "|" + field[5] + "|" + field[6])
print(field[7] + "|" + field[8] + "|" + field[9])
active_player ="X"
run = True
def check_win():#Zeilen prüfen
if field[1] == field[2] == field[3]:
return field[1]
if field[4] == field[5] == field[6]:
return field[4]
if field[7] == field[8] == field[9]:
return field[7]
#Spalten prüfen
if field[1] == field[4] == field[7]:
return field[1]
if field[2] == field[5] == field[8]:
return field[2]
if field[3] == field[6] == field[9]:
return field[3]
#Diagonalen
if field[1] == field[5] == field[9]:
return field[1]
if field[3] == field[5] == field[7]:
return field[3]
def check_draw():
if field[1] != "1" and field[2] != "2" and field[3] != "3" \
and field[4] != "4" and field[5] != "5" \
and field[6] != "6" and field[7] != "7" \
and field[8] != "8" and field[9] != "9":
return True
def next_move():
global run
while True:
player_move = int(input("Bitte das gewünschte Feld eingeben: "))
if player_move == "q":
run = False
return
if player_move >= 1 and player_move <= 9:
if field[player_move] == "X" or field[player_move] == "O":
print("Spielfeld belegt, neue Eingabe")
else:
return player_move
else:
print("Die eingegebene Zahl muss zwischen 1 und 9 liegen. Bitte Eingabe wiederholen...")
def change_player():
global active_player
if active_player == "X":
active_player = "O"
else:
active_player = "X"
while run:
print_field()
player_move = next_move()
if player_move != None:
field[player_move] = active_player
winner = check_win()
if winner:
print(winner + " hat Gewonnen")
run = False
if check_draw():
print("Unentschieden")
run = False
change_player()