From 20a8785ef20a2164c428dbeec0c29061f5003f8c Mon Sep 17 00:00:00 2001 From: Hong-Phuc Bui <hong-phuc.bui@htwsaar.de> Date: Mon, 12 May 2025 22:00:28 +0200 Subject: [PATCH] tik tak toe 2.te runde --- ub-3/tik-tak-toe.py | 69 ++++++++++++++++++++++++++++------ 1 files changed, 56 insertions(+), 13 deletions(-) diff --git a/ub-3/tik-tak-toe.py b/ub-3/tik-tak-toe.py index 09b0a74..ec019f5 100644 --- a/ub-3/tik-tak-toe.py +++ b/ub-3/tik-tak-toe.py @@ -8,30 +8,73 @@ [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") - r = int(input("Zeile: ")) - 1 - c = int(input("Spalte: ")) - 1 - if input_ok(tafel, r, c): - tafel[r][c] = user - else: - print("Eingabe nicht in Ordnung") + 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) -user_input(1, tafel) -print_tafel(tafel) -user_input(2, tafel) -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!") + + + -- Gitblit v1.10.0-SNAPSHOT