Start to code a round

master
En Yi 2019-05-05 20:15:25 +01:00
parent ed90a50e49
commit 9b73fc4682
2 changed files with 37 additions and 15 deletions

View File

@ -202,10 +202,11 @@ class Deck():
values.append(card.value)
return values
def check_card_in(self):
# TODO: Write a function to check if card is in the deck
# and return bool with position of card
pass
def check_card_in(self, value):
card_values = self.get_deck_values()
if value in card_values:
return True, card_values.index(value)
return False, -1
class PlayerDeck(Deck):

View File

@ -72,8 +72,7 @@ class Table:
self.players_playzone = []
self.table_status = {'played cards': [0, 0, 0, 0], 'leading player': 0, 'trump suit': 1,
'trump broken': False, 'round history': [], 'bid': 0, 'partner': 0,
'partner_reveal': False}
self.team_status = {'defender': {'target': 0, 'wins': 0},
'partner_reveal': False, 'defender': {'target': 0, 'wins': 0},
'attacker': {'target': 0, 'wins': 0}}
self.current_round = 0
@ -167,6 +166,9 @@ class Table:
self.game_state = GameState.ENDING
elif self.game_state == GameState.PLAYING:
while self.current_round < 14:
self.play_a_round()
self.current_round += 1
pass
else:
self.reset_game()
@ -220,13 +222,32 @@ class Table:
self.table_status["leading player"] = current_player + 1
print('Bidding Complete')
print(self.table_status)
self.team_status['defender']['target'] = self.table_status["bid"] // 10 + 6
self.team_status['attacker']['target'] = 14 - self.team_status['defender']['target']
self.table_status['defender']['target'] = self.table_status["bid"] // 10 + 6
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):
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):
for player in self.players:
@ -312,7 +333,7 @@ class Player(cards.Deck):
print("Please enter integer only")
def make_a_play(self):
pass
return 1
def view_last_round(self):
pass