EMPTY = 0 PL1 = 1 PL2 = 2 tafel = [ [EMPTY, EMPTY, EMPTY], [EMPTY, EMPTY, EMPTY], [EMPTY, EMPTY, EMPTY], ] COLUMNS = 3 ROWS = 3 def print_tafel(board): symbols = ("*", "X", "O") for zeile in board: for c in zeile: print(f"{symbols[c]} ",end="") print() def input_ok(tafel, r, c): is_in_tafel = (ROWS > r >=0) and (COLUMNS > c >= 0) if is_in_tafel: beleg = tafel[r][c] return beleg == EMPTY else: return False def user_input(user,tafel): print(f"Spieler {user} ist dran") print("Geben Sie die Zeile und Spalten ein") user_input_ok = False while not user_input_ok: r = int(input("Zeile: ")) - 1 c = int(input("Spalte: ")) - 1 user_input_ok = input_ok(tafel, r, c) if user_input_ok: tafel[r][c] = user else: print("Eingabe nicht in Ordnung") def spiel_bewerten(tafel): """ return: Ein Tupel 1. Element: True = Spiel beendet False = Spiel geht weiter 2. Element: 0 = unentschieden 1 = 1. Spieler gewonnen 2 = 2. Spieler gewonnen """ empty_cells = ROWS * COLUMNS for row in tafel: for colum in row: if colum != EMPTY: empty_cells = empty_cells - 1 return (empty_cells == 0, 0) print_tafel(tafel) aktuelle_spieler = 1 (spiel_ende, gewinner) = (False, 0) while not spiel_ende : (spiel_ende, gewinner) = spiel_bewerten(tafel) user_input(aktuelle_spieler, tafel) print_tafel(tafel) if aktuelle_spieler == 1: aktuelle_spieler = 2 else: aktuelle_spieler = 1 print("Spiel beendet!")