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