Start to code a round
parent
ed90a50e49
commit
9b73fc4682
9
cards.py
9
cards.py
|
@ -202,10 +202,11 @@ class Deck():
|
||||||
values.append(card.value)
|
values.append(card.value)
|
||||||
return values
|
return values
|
||||||
|
|
||||||
def check_card_in(self):
|
def check_card_in(self, value):
|
||||||
# TODO: Write a function to check if card is in the deck
|
card_values = self.get_deck_values()
|
||||||
# and return bool with position of card
|
if value in card_values:
|
||||||
pass
|
return True, card_values.index(value)
|
||||||
|
return False, -1
|
||||||
|
|
||||||
|
|
||||||
class PlayerDeck(Deck):
|
class PlayerDeck(Deck):
|
||||||
|
|
39
players.py
39
players.py
|
@ -72,8 +72,7 @@ class Table:
|
||||||
self.players_playzone = []
|
self.players_playzone = []
|
||||||
self.table_status = {'played cards': [0, 0, 0, 0], 'leading player': 0, 'trump suit': 1,
|
self.table_status = {'played cards': [0, 0, 0, 0], 'leading player': 0, 'trump suit': 1,
|
||||||
'trump broken': False, 'round history': [], 'bid': 0, 'partner': 0,
|
'trump broken': False, 'round history': [], 'bid': 0, 'partner': 0,
|
||||||
'partner_reveal': False}
|
'partner_reveal': False, 'defender': {'target': 0, 'wins': 0},
|
||||||
self.team_status = {'defender': {'target': 0, 'wins': 0},
|
|
||||||
'attacker': {'target': 0, 'wins': 0}}
|
'attacker': {'target': 0, 'wins': 0}}
|
||||||
self.current_round = 0
|
self.current_round = 0
|
||||||
|
|
||||||
|
@ -167,6 +166,9 @@ class Table:
|
||||||
self.game_state = GameState.ENDING
|
self.game_state = GameState.ENDING
|
||||||
|
|
||||||
elif self.game_state == GameState.PLAYING:
|
elif self.game_state == GameState.PLAYING:
|
||||||
|
while self.current_round < 14:
|
||||||
|
self.play_a_round()
|
||||||
|
self.current_round += 1
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
self.reset_game()
|
self.reset_game()
|
||||||
|
@ -220,13 +222,32 @@ class Table:
|
||||||
self.table_status["leading player"] = current_player + 1
|
self.table_status["leading player"] = current_player + 1
|
||||||
print('Bidding Complete')
|
print('Bidding Complete')
|
||||||
print(self.table_status)
|
print(self.table_status)
|
||||||
self.team_status['defender']['target'] = self.table_status["bid"] // 10 + 6
|
self.table_status['defender']['target'] = self.table_status["bid"] // 10 + 6
|
||||||
self.team_status['attacker']['target'] = 14 - self.team_status['defender']['target']
|
self.table_status['attacker']['target'] = 14 - self.table_status['defender']['target']
|
||||||
|
|
||||||
# TODO: Check who has the partner card and assign the role
|
self.players[current_player].role = PlayerRole.DEFENDER
|
||||||
|
for _ in range(3):
|
||||||
|
current_player += 1
|
||||||
|
current_player %= 4
|
||||||
|
is_partner, _ = self.players[current_player].check_card_in(self.table_status["partner"])
|
||||||
|
if is_partner:
|
||||||
|
self.players[current_player].role = PlayerRole.DEFENDER
|
||||||
|
else:
|
||||||
|
self.players[current_player].role = PlayerRole.ATTACKER
|
||||||
|
|
||||||
def play_a_round(self):
|
def play_a_round(self):
|
||||||
pass
|
if self.current_round < 13:
|
||||||
|
# TODO: Starting from the leading player, make a play following the rules
|
||||||
|
# Subsequent player make their plays
|
||||||
|
# Once all player played, determine the winner
|
||||||
|
# Clean up the cards, set the leading player, update score, repeat
|
||||||
|
current_player = self.table_status['leading player']
|
||||||
|
card = self.players[current_player].make_decision(self.game_state, 0)
|
||||||
|
self.table_status["played cards"][current_player] = card.value
|
||||||
|
|
||||||
|
for _ in range(3):
|
||||||
|
card = self.players[current_player].make_decision(self.game_state, 1)
|
||||||
|
self.table_status["played cards"][current_player] = card.value
|
||||||
|
|
||||||
def reset_game(self):
|
def reset_game(self):
|
||||||
for player in self.players:
|
for player in self.players:
|
||||||
|
@ -271,8 +292,8 @@ class Player(cards.Deck):
|
||||||
def make_a_bid(self):
|
def make_a_bid(self):
|
||||||
while True:
|
while True:
|
||||||
bid = input("Please input a bid in the format 'number' + 'suit' \n"
|
bid = input("Please input a bid in the format 'number' + 'suit' \n"
|
||||||
" To pass, enter nothing. \n"
|
"To pass, enter nothing. \n"
|
||||||
"i.e. 42 is 4 Diamond, 65 is 6 No Trump \n "
|
"i.e. 42 is 4 Diamond, 65 is 6 No Trump \n"
|
||||||
"Suit Number: 1-Club 2-Diamond 3-Hearts 4-Spades 5-NoTrump\n")
|
"Suit Number: 1-Club 2-Diamond 3-Hearts 4-Spades 5-NoTrump\n")
|
||||||
|
|
||||||
if not bid:
|
if not bid:
|
||||||
|
@ -312,7 +333,7 @@ class Player(cards.Deck):
|
||||||
print("Please enter integer only")
|
print("Please enter integer only")
|
||||||
|
|
||||||
def make_a_play(self):
|
def make_a_play(self):
|
||||||
pass
|
return 1
|
||||||
|
|
||||||
def view_last_round(self):
|
def view_last_round(self):
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in New Issue