| | |
| | | [EMPTY, EMPTY, EMPTY], |
| | | ] |
| | | |
| | | def print_tafel(tafel): |
| | | COLUMNS = 3 |
| | | ROWS = 3 |
| | | |
| | | def print_tafel(board): |
| | | symbols = ("*", "X", "O") |
| | | for zeile in tafel: |
| | | for zeile in board: |
| | | for c in zeile: |
| | | print(f"{symbols[c]} ",end="") |
| | | print() |
| | | |
| | | def input_ok(tafel, r, c): |
| | | return True |
| | | 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 |
| | | if input_ok(tafel, r, c): |
| | | 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) |
| | | user_input(1, 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) |
| | | user_input(2, tafel) |
| | | print_tafel(tafel) |
| | | if aktuelle_spieler == 1: |
| | | aktuelle_spieler = 2 |
| | | else: |
| | | aktuelle_spieler = 1 |
| | | |
| | | print("Spiel beendet!") |
| | | |
| | | |
| | | |
| | | |