mirror of
https://github.com/JonasunderscoreJones/EPR-Gruppenabgabe-07.git
synced 2025-10-23 01:39:18 +02:00
84 lines
No EOL
2.3 KiB
Python
84 lines
No EOL
2.3 KiB
Python
__author__ = "7987847, Werner, 7347119, Fajst, 7735965, Melikidze"
|
|
|
|
from random import randint
|
|
from time import sleep
|
|
|
|
RANKS = ['Ace', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', 'King']
|
|
SUITS = ['Spades', 'Hearts', 'Diamonds', 'Clubs']
|
|
|
|
def create_cards():
|
|
|
|
card_deck = []
|
|
|
|
for suit in SUITS:
|
|
for rank in RANKS:
|
|
card = {'rank': rank, 'suit': suit}
|
|
card_deck.append(card)
|
|
return card_deck
|
|
|
|
|
|
def deal_cards(card_deck:list, players:int, cards_per_player:int):
|
|
'''
|
|
Deals cards to players
|
|
|
|
input:
|
|
- card_deck: list
|
|
list of cards
|
|
- players: int
|
|
number of players
|
|
- cards_per_player: int
|
|
number of cards per player
|
|
output:
|
|
- player_cards: tuple
|
|
tuple of lists, each list contains the cards of a player
|
|
'''
|
|
temp_cards = []
|
|
for player in range(players):
|
|
temp_cards.append([])
|
|
for card in range(cards_per_player):
|
|
temp_cards[player].append(card_deck.pop(randint(0, len(card_deck)-1)))
|
|
while len(temp_cards) < 5:
|
|
temp_cards.append([])
|
|
|
|
return (temp_cards[0], temp_cards[1], temp_cards[2], temp_cards[3], temp_cards[4])
|
|
|
|
|
|
def compare_cards(cards_to_compare:list, trumpf_color:str):
|
|
'''
|
|
Compares the given cards and returns the winner
|
|
|
|
input:
|
|
- cards_to_compare: list
|
|
list of cards to compare
|
|
output:
|
|
- winner: int
|
|
index of the winning card
|
|
'''
|
|
winner = 0
|
|
trumpf = []
|
|
for i in cards_to_compare:
|
|
if i.get('suit') == trumpf_color:
|
|
trumpf.append(cards_to_compare.index(i))
|
|
if len(trumpf) == 1:
|
|
return trumpf[0]
|
|
elif len(trumpf) > 1:
|
|
winner = 0
|
|
for j in trumpf:
|
|
if RANKS.index(cards_to_compare[j].get('rank')) > RANKS.index(cards_to_compare[winner].get('rank')):
|
|
winner = j
|
|
winner = j
|
|
else:
|
|
winner = 0
|
|
for j in cards_to_compare:
|
|
if RANKS.index(j.get('rank')) > RANKS.index(cards_to_compare[winner].get('rank')):
|
|
winner = cards_to_compare.index(j)
|
|
print(winner, j, cards_to_compare)
|
|
|
|
return winner
|
|
|
|
|
|
if __name__ == '__main__':
|
|
card_deck = create_cards()
|
|
print(card_deck)
|
|
|
|
print(deal_cards(card_deck, 5, 5)) |