-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNimGame.py
More file actions
68 lines (50 loc) · 1.65 KB
/
Copy pathNimGame.py
File metadata and controls
68 lines (50 loc) · 1.65 KB
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
"""
@author: Abdoulaye Niang
@date : 2024-02-26
Les jeux de Nim sont des jeux de stratégie pure, à 2 joueurs.
Ce jeu consiste à enlever 1, 2 ou 3 objets à chaque tour.
Le vainqueur est celui qui peut jouer en dernier.
"""
class NimGame:
def __init__(self, player1:str, player2:str, number:int):
self.player1 = player1
self.player2 = player2
self.number = number
self.current_player = self.player1
self.end_game = False
self.winner = None
def get_winner(self):
return self.winner
def get_number(self):
return self.number
def get_player1(self):
return self.player1
def get_player2(self):
return self.player2
def change_player(self):
if self.current_player == self.player1:
self.current_player = self.player2
else:
self.current_player = self.player1
def check_end_game(self, v:int):
self.number -= v
if self.number <= 0:
self.end_game = True
self.winner = self.current_player
def game(self):
check = True
while check:
try:
v = int(input(f'Tour {self.current_player} >> '))
if v in (1,2,3) and (self.get_number() - v >= 0):
check = False
self.check_end_game(v)
self.change_player()
print(f'Restant {self.get_number()}',end=' ')
except ValueError:
pass
def play(self):
while not self.end_game:
self.game()
print(f'The Winner : {self.get_winner()}')
exit (0)