mirror of
https://github.com/JonasunderscoreJones/EPI-2324.git
synced 2025-10-23 16:49:18 +02:00
ue04
This commit is contained in:
parent
49e3992335
commit
2158fab967
4 changed files with 229 additions and 0 deletions
BIN
EPR/ue04/7987847_epr_blatt-04.zip
Normal file
BIN
EPR/ue04/7987847_epr_blatt-04.zip
Normal file
Binary file not shown.
36
EPR/ue04/README.md.txt
Normal file
36
EPR/ue04/README.md.txt
Normal file
|
@ -0,0 +1,36 @@
|
|||
author: 7987847, Werner
|
||||
|
||||
|
||||
Zur Nutzung muss eine kompatible Python version installiert sein.
|
||||
Akzeptiert werden alle Python 3.x Versionen.
|
||||
|
||||
Das Programm kann mit dem Befehl `python3 main.py` im Ordner gestartet werden.
|
||||
|
||||
|
||||
Oben ist der code zu sehen der hier nun beschrieben wird:
|
||||
|
||||
Zuerst wird der Spieler nach der Anzahl der Spieler gefragt.
|
||||
Danach wird er nach der Anzahl der Karten gefragt.
|
||||
Zuletzt wird er nach dem Trumpf gefragt.
|
||||
|
||||
Danach wird eine Liste mit allen Karten erstellt.
|
||||
Diese Liste wird dann gemischt.
|
||||
Danach werden die Karten an die Spieler verteilt.
|
||||
|
||||
Zuletzt werden die Karten ausgegeben und mit dem Trumpf verglichen.
|
||||
|
||||
Hinweis: Die Eingaben erlauben nur positive Zahlen und keine Buchstaben (bis auf den Trumpf).
|
||||
Bei einer falschen Eingabe kommt es zu einem Fehler.
|
||||
Hinweis: Bei der Eingabe des Trumpfs ist die Groß- und Kleinschreibung wichtig.
|
||||
Es wird der erste Buchstabe groß geschrieben und der Rest klein.
|
||||
|
||||
Testfälle
|
||||
---
|
||||
Im Programmcode sind zu jeder der beiden Mittel jeweils 3 Testfälle angegeben.
|
||||
|
||||
PEP8
|
||||
---
|
||||
Der Programmcode ist soweit wie möglich nach PEP8 abgestimmt.
|
||||
Von der Aufgabe vorgegebene Funktions- und Variablennamen wurden beibehalten.
|
||||
Diese sind nicht PEP8 konform (snake_case naming).
|
||||
|
192
EPR/ue04/main.py
Normal file
192
EPR/ue04/main.py
Normal file
|
@ -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()
|
Loading…
Add table
Add a link
Reference in a new issue