Add player custom name and security in conflict between players name and paws
This commit is contained in:
parent
049bc85407
commit
e3ba3b6805
1 changed files with 23 additions and 10 deletions
33
Morpion.py
33
Morpion.py
|
@ -1,11 +1,12 @@
|
||||||
class Player:
|
class Player:
|
||||||
"""self, number (int), pawn (str)
|
"""self, number (int), pawn (str), name (str)
|
||||||
A player of the party"""
|
A player of the party"""
|
||||||
def __init__(self, number: int, pawn: str):
|
def __init__(self, number: int, pawn: str, name: str):
|
||||||
"""self, number (int), pawn (str), name (str)
|
"""self, number (int), pawn (str), name (str)
|
||||||
A player of the party"""
|
A player of the party"""
|
||||||
self.number = number # The number of the player
|
self.number = number # The number of the player
|
||||||
self.pawn = pawn # The paw of the player
|
self.pawn = pawn # The paw of the player
|
||||||
|
self.name = name # The name of the player
|
||||||
self.pawns = list() # All the paws on the grid of the player
|
self.pawns = list() # All the paws on the grid of the player
|
||||||
self.points = 0 # The points of the player
|
self.points = 0 # The points of the player
|
||||||
|
|
||||||
|
@ -52,13 +53,18 @@ class Player:
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
"""self
|
"""self
|
||||||
Send back the player's name"""
|
Send back the player's name"""
|
||||||
return f"Player {self.number}"
|
return self.name
|
||||||
|
|
||||||
def __int__(self):
|
def __int__(self):
|
||||||
"""self
|
"""self
|
||||||
Send back the player's number"""
|
Send back the player's number"""
|
||||||
return self.number
|
return self.number
|
||||||
|
|
||||||
|
def __len__(self):
|
||||||
|
"""self
|
||||||
|
Return the number of player's paws"""
|
||||||
|
return len(self.pawns)
|
||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
"""self
|
"""self
|
||||||
Setup iterable for paws list"""
|
Setup iterable for paws list"""
|
||||||
|
@ -76,19 +82,25 @@ class Player:
|
||||||
|
|
||||||
|
|
||||||
class Board:
|
class Board:
|
||||||
"""self
|
"""self, p1_paw (str), p1_name (str), p2_paw (str), p2_name (str)
|
||||||
A party object"""
|
A party object"""
|
||||||
def __init__(self):
|
def __init__(self, p1_paw: str, p1_name : str, p2_paw: str, p2_name: str):
|
||||||
"""self
|
"""self, p1_paw (str), p1_name (str), p2_paw (str), p2_name (str)
|
||||||
A party object"""
|
A party object"""
|
||||||
self.player1 = Player(1, "O") # Set player 1
|
# Security if conflict with players paws and name
|
||||||
self.player2 = Player(2, "X") # Set player 2
|
if p1_paw == p2_paw:
|
||||||
|
raise ValueError("The pawns are the same !")
|
||||||
|
elif p1_name == p2_name:
|
||||||
|
raise ValueError("The name are the same !")
|
||||||
|
|
||||||
|
self.player1 = Player(1, p1_paw, p1_name) # Set player 1
|
||||||
|
self.player2 = Player(2, p2_paw, p2_name) # Set player 2
|
||||||
self.curr_turn = [self.player1, self.player2] # Set turn order
|
self.curr_turn = [self.player1, self.player2] # Set turn order
|
||||||
|
|
||||||
def check(self):
|
def check(self):
|
||||||
"""self
|
"""self
|
||||||
Check if someone win the game"""
|
Check if someone win the game"""
|
||||||
if ((len(self.player1.pawns) == 4) and (len(self.player2.pawns) == 4))\
|
if ((len(self.player1) == 4) and (len(self.player2) == 4))\
|
||||||
and not (self.player1.check() and not self.player2.check()): # Check equality
|
and not (self.player1.check() and not self.player2.check()): # Check equality
|
||||||
return 3
|
return 3
|
||||||
elif self.player1.check(): # Check player 1
|
elif self.player1.check(): # Check player 1
|
||||||
|
@ -122,5 +134,6 @@ class Board:
|
||||||
board = f"""P1: {self.player1.points} | P2: {self.player2.points}
|
board = f"""P1: {self.player1.points} | P2: {self.player2.points}
|
||||||
[{pawns[0]},{pawns[1]},{pawns[2]}]
|
[{pawns[0]},{pawns[1]},{pawns[2]}]
|
||||||
[{pawns[3]},{pawns[4]},{pawns[5]}]
|
[{pawns[3]},{pawns[4]},{pawns[5]}]
|
||||||
[{pawns[6]},{pawns[7]},{pawns[8]}]"""
|
[{pawns[6]},{pawns[7]},{pawns[8]}]
|
||||||
|
{self.player1}: {self.player1.points}/{self.player2}: {self.player2.points}"""
|
||||||
print(board)
|
print(board)
|
Loading…
Reference in a new issue