Hong-Phuc Bui
2025-05-12 20a8785ef20a2164c428dbeec0c29061f5003f8c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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!")