From aea5d3c3f189ccf0868f85bfec8c6011bb8ee717 Mon Sep 17 00:00:00 2001
From: Lukas Hoffleit <lukas.hoffleit03@gmail.com>
Date: Fri, 11 Apr 2025 09:53:19 +0200
Subject: [PATCH] Player darf auch int sein

---
 TicTacToe.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)
 create mode 100644 TicTacToe.py

diff --git a/TicTacToe.py b/TicTacToe.py
new file mode 100644
index 0000000..89254e2
--- /dev/null
+++ b/TicTacToe.py
@@ -0,0 +1,58 @@
+from enum import Enum
+
+class Player(Enum):
+    one = 1
+    two = 2
+    undefined = 3
+
+class TicTacToe():
+    def __init__(self) -> None:
+        self.grid = []
+        for i in range(3):
+            self.grid.append([Player.undefined, Player.undefined, Player.undefined])
+
+    def add(self, row, col, player) -> bool:
+        """ Change the value of a undefined field.
+        The player can be passed as Player Object or plain Int.
+        Returns True, if executed correctly.
+        Returns False, if the field is already occupied 
+        or the player number is invalid.
+        """
+        if isinstance(player, int):
+            try: player = Player(player)
+            except ValueError: return False  # invalid player number
+
+        if self.check_field(row, col):
+            self.grid[row][col] = player
+            return True
+        return False
+
+    def check_field(self, row, col) -> bool:
+        """Checks, if a field is occupied"""
+        if self.grid[row][col] != Player.undefined:
+            return False
+        return True
+    
+    def print_grid(self) -> None:
+        symbols = {
+            Player.one: "X",
+            Player.two: "O",
+            Player.undefined: " "
+        }
+        
+        print("┌───┬───┬───┐")
+        for i, row in enumerate(self.grid):
+            print("│", end="")
+            for field in row:
+                print(f" {symbols[field]} │", end="")
+            if i < len(self.grid) - 1:
+                print("\n├───┼───┼───┤")
+        print("\n└───┴───┴───┘\n")
+
+
+if __name__ == "__main__":
+    ttt = TicTacToe()
+    ttt.add(1, 1, 1)
+    ttt.print_grid()
+    ttt.add(1, 2, Player.two)
+    ttt.print_grid()
-- 
GitLab