Add player custom name and security in conflict between players name and paws

This commit is contained in:
Ethanell 2019-07-09 13:54:08 +02:00
parent 049bc85407
commit e3ba3b6805

View file

@ -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)