Skip to content
Snippets Groups Projects
Commit cb8e7cc9 authored by Lukas Hoffleit's avatar Lukas Hoffleit
Browse files

Error-Handling und Player-Conversion

parent 06dd6b28
No related branches found
No related tags found
No related merge requests found
from enum import Enum
class Player(Enum):
undefined = 0
one = 1
two = 2
undefined = 3
class TicTacToeError(Exception):
"""TicTacToe Error"""
class TicTacToe():
def __init__(self) -> None:
......@@ -11,6 +14,14 @@ class TicTacToe():
for i in range(3):
self.grid.append([Player.undefined, Player.undefined, Player.undefined])
def _get_player_from_int(self, player:Player|int) -> Player:
if isinstance(player, int):
try:
return Player(player)
except ValueError:
raise TicTacToeError("The player number is invalid. Only '1' and '2' are accepted")
return player
def add(self, row:int, col:int, player:Player|int) -> bool:
""" Change the value of a undefined field.
The player can be passed as Player Object or plain Int.
......@@ -18,10 +29,7 @@ class TicTacToe():
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
player = self._get_player_from_int(player)
if self.check_field(row, col):
self.grid[row][col] = player
return True
......@@ -49,6 +57,11 @@ class TicTacToe():
print("\n├───┼───┼───┤")
print("\n└───┴───┴───┘\n")
def get_best_move(self, player:Player|int) -> tuple[int, int]:
return (0, 0)
if __name__ == "__main__":
ttt = TicTacToe()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment