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