diff --git a/EPR/ue05/blatt04.py b/EPR/ue05/blatt04.py new file mode 100644 index 0000000..eb3c317 --- /dev/null +++ b/EPR/ue05/blatt04.py @@ -0,0 +1,192 @@ +'''EPR Übungsblatt 04''' +__author__="7987847, Werner" + +import random + +# a) +def create_card_list(number_of_cards:int) -> [(int, str)]: + '''Erzeugt eine Liste mit Karten mit den vier Farben + und Zahlen von 1 bis number_of_cards + number_of_cards: Anzahl der Karten + ''' + card_list = [] + for i in range(1, int((number_of_cards+1)/4)+1): + card_list.append((i, "Kreuz")) + card_list.append((i, "Pik")) + card_list.append((i, "Herz")) + card_list.append((i, "Karo")) + return card_list + + +# b) +def shuffle_card_list(cards:[(int, str)]) -> [(int, str)]: + '''Mischt eine Liste mit Karten + cards: Liste mit Karten + ''' + random.shuffle(cards) + return cards + + +# c) +def compare_two_cards(card_one:(int, str), card_two:(int, str)) -> int: + '''Vergleicht zwei Karten + card_one: Erste Karte + card_two: Zweite Karte + ''' + if card_one[0] < card_two[0]: + return 0 + if card_one[0] == card_two[0]: + return 1 + return 2 + + +# d) +def compare_two_cards_trump(card_one:(int, str), card_two:(int, str), +trump:str) -> int: + '''Vergleiche Zwei Karten mit dem Trumpf + ''' + if card_one[1] == trump and card_two[1] != trump: + return 0 + if card_one[1] != trump and card_two[1] == trump: + return 1 + return compare_two_cards(card_one, card_two) + + +# e) +def hand_out_cards(list_cards: [(int, str)], players: int, number_of_cards: +int) -> [[(int, str)]]: + '''Teilt die Karten an die Spieler aus + list_cards: Liste mit Karten + players: Anzahl der Spieler + number_of_cards: Anzahl der Karten pro Spieler + ''' + list_players = [] + for _ in range(players): + list_players.append([]) + + for _ in range(number_of_cards): + for j in range(players): + list_players[j].append(list_cards.pop(0)) + + return list_players + + +def main(): + '''Hauptprogramm''' + # Testfälle + + # a) + # create_card_list(0) + # Rückgabe: [] + + # create_card_list(32) + # Rückgabe: [(1, 'Kreuz'), (1, 'Pik'), (1, 'Herz'), (1, 'Karo'), + # (2, 'Kreuz'), (2, 'Pik'), (2, 'Herz'), (2, 'Karo'), (3, 'Kreuz'), + # (3, 'Pik'), (3, 'Herz'), (3, 'Karo'), (4, 'Kreuz'), (4, 'Pik'), + # (4, 'Herz'), (4, 'Karo'), (5, 'Kreuz'), (5, 'Pik'), (5, 'Herz'), + # (5, 'Karo'), (6, 'Kreuz'), (6, 'Pik'), (6, 'Herz'), (6, 'Karo'), + # (7, 'Kreuz'), (7, 'Pik'), (7, 'Herz'), (7, 'Karo'), (8, 'Kreuz'), + # (8, 'Pik'), (8, 'Herz'), (8, 'Karo')] + + # create_card_list(-10) + # Rückgabe: [] + + # b) + # shuffle_card_list([]) + # Rückgabe: [] + + # shuffle_card_list([(1, 'Kreuz'), (1, 'Pik'), (1, 'Herz'), (1, 'Karo'), + # (2, 'Kreuz'), (2, 'Pik'), (2, 'Herz'), (2, 'Karo'), (3, 'Kreuz'), + # (3, 'Pik'), (3, 'Herz'), (3, 'Karo'), (4, 'Kreuz'), (4, 'Pik'), + # (4, 'Herz'), (4, 'Karo'), (5, 'Kreuz'), (5, 'Pik'), (5, 'Herz'), + # (5, 'Karo'), (6, 'Kreuz'), (6, 'Pik'), (6, 'Herz'), (6, 'Karo'), + # (7, 'Kreuz'), (7, 'Pik'), (7, 'Herz'), (7, 'Karo'), (8, 'Kreuz'), + # (8, 'Pik'), (8, 'Herz'), (8, 'Karo')]) + # Rückgabe: [(6, 'Pik'), (1, 'Kreuz'), (4, 'Karo'), (5, 'Kreuz'), + # (8, 'Karo'), (6, 'Herz'), (3, 'Herz'), (1, 'Herz'), (4, 'Pik'), + # (8, 'Pik'), (2, 'Kreuz'), (5, 'Pik'), (3, 'Karo'), (2, 'Herz'), + # (7, 'Pik'), (2, 'Pik'), (7, 'Herz'), (1, 'Pik'), (8, 'Herz'), + # (7, 'Karo'), (6, 'Karo'), (5, 'Herz'), (4, 'Herz'), (3, 'Pik'), + # (2, 'Karo'), (5, 'Karo'), (6, 'Kreuz'), (1, 'Karo'), (8, 'Kreuz'), + # (3, 'Kreuz'), (7, 'Kreuz'), (4, 'Kreuz')] + # (Kann auch anders aussehen) + + # shuffle_card_list([(1, 'Kreuz'), (1, 'Pik'), (1, 'Herz'), (1, 'Karo')] + # Rückgabe: [(1, 'Pik'), (1, 'Kreuz'), (1, 'Karo'), (1, 'Herz')] + # (Kann auch anders aussehen) + + # c) + # compare_two_cards((1, 'Kreuz'), (1, 'Pik')) + # Rückgabe: 1 + + # compare_two_cards((1, 'Kreuz'), (2, 'Pik')) + # Rückgabe: 0 + # compare_two_cards(('Pik), (1)) + # Rückgabe: TypeError: 'int' object is not subscriptable + + # d) + # compare_two_cards_trump((1, 'Kreuz'), (1, 'Pik'), 'Kreuz') + # Rückgabe: 1 + + # compare_two_cards_trump((1, 'Kreuz'), (1, 'Pik'), 'Pik') + # Rückgabe: 0 + + # compare_two_cards_trump((1, 'Kreuz'), (1, 'Pik'), 'Herz') + # Rückgabe: 0 + + # e) + # hand_out_cards([(1, 'Kreuz'), (1, 'Pik'), (1, 'Herz'), (1, 'Karo'), + # (2, 'Kreuz'), (2, 'Pik'), (2, 'Herz'), (2, 'Karo'), (3, 'Kreuz'), + # (3, 'Pik'), (3, 'Herz'), (3, 'Karo'), (4, 'Kreuz'), (4, 'Pik'), + # (4, 'Herz'), (4, 'Karo'), (5, 'Kreuz'), (5, 'Pik'), (5, 'Herz'), + # (5, 'Karo'), (6, 'Kreuz'), (6, 'Pik'), (6, 'Herz'), (6, 'Karo'), + # (7, 'Kreuz'), (7, 'Pik'), (7, 'Herz'), (7, 'Karo'), (8, 'Kreuz'), + # (8, 'Pik'), (8, 'Herz'), (8, 'Karo')], 0, 0) + + # Rückgabe: [] + + # hand_out_cards([(1, 'Kreuz'), (1, 'Pik'), (1, 'Herz'), (1, 'Karo'), + # (2, 'Kreuz'), (2, 'Pik'), (2, 'Herz'), (2, 'Karo'), (3, 'Kreuz'), + # (3, 'Pik'), (3, 'Herz'), (3, 'Karo'), (4, 'Kreuz'), (4, 'Pik'), + # (4, 'Herz'), (4, 'Karo'), (5, 'Kreuz'), (5, 'Pik'), (5, 'Herz'), + # (5, 'Karo'), (6, 'Kreuz'), (6, 'Pik'), (6, 'Herz'), (6, 'Karo'), + # (7, 'Kreuz'), (7, 'Pik'), (7, 'Herz'), (7, 'Karo'), (8, 'Kreuz'), + # (8, 'Pik'), (8, 'Herz'), (8, 'Karo')], 4, 0) + + # Rückgabe: [[], [], [], []] + + # hand_out_cards([], 4, 4) + + # Rückgabe: IndexError: pop from empty list + + print("Es wird ein Kartenspiel erstellt.") + print("Geben Sie die Anzahl der Spieler ein.") + players = int(input("Anzahl der Spieler: ")) + print("Geben Sie die Anzahl der Karten ein.") + number_of_cards = int(input("Anzahl der Karten: ")) + print("Geben Sie den Trumpf ein.") + trump = input("Trumpf: ") + + card_list = create_card_list(number_of_cards) + card_list = shuffle_card_list(card_list) + player_list = hand_out_cards(card_list, players, number_of_cards) + + print("Die Karten werden ausgegeben.") + + for i in range(players): + print("Spieler " + str(i + 1) + ":") + for j in range(number_of_cards): + print(player_list[i][j], end=" ") + print() + + print("Es werden die Karten mit dem Trumpf verglichen.") + + for i in range(players): + print("Spieler " + str(i + 1) + ":") + for j in range(number_of_cards): + if player_list[i][j][1] == trump: + print(player_list[i][j], end=" ") + print() + +if __name__ == '__main__': + main() diff --git a/EPR/ue05/main.py b/EPR/ue05/main.py new file mode 100644 index 0000000..ce05b39 --- /dev/null +++ b/EPR/ue05/main.py @@ -0,0 +1,17 @@ +'''EPR Übungsblatt 05''' +__author__="7987847, Werner" + +import blatt04 + + + + + + + + + + + +if __name__ == '__main__': + pass \ No newline at end of file