Code: Alles auswählen
for i in range(anzahl):
print(10)
for self.name in self.spieler_liste.values():
print(self.name)
karte = self.kartendeck.pop(0)
print(f"Test: {karte}")
self.name.hand.append(karte)
print(self.name)
Die Karten sind Objekte der Klasse Karte oder Sonderkarte und sind alle individuell.
Problem: ich möchte dem aktuellen Spieler die oberste Karte des Kartendecks geben, jedoch wird diese Karte jedem Spieler zugewiesen.
self.spieler_list ist ein dictionary das die Klasse Spieler enthält:
Code: Alles auswählen
class Spieler:
def __init__(
self,
name: str,
handkarten: list[Karte, Sonderkarte] = [],
nachziehkarte: (Karte, Sonderkarte) = None,
geklopft: bool = False,
) -> None:
self.name = name
self.hand = handkarten
self.nachziehkarte = nachziehkarte
self.geklopft = geklopft
logging.info(f"Spieler: Neuer Spieler:: name:{self.name}")
def __str__(self) -> str:
return f"Spieler(name: {self.name}, handkarten: {self.hand}, nachziehkarte: {self.nachziehkarte})"
def __repr__(self) -> str:
return f"Spieler(name: {self.name}, handkarten: {self.hand}, nachziehkarte: {self.nachziehkarte})"
Code: Alles auswählen
def __init__(
self,
name: str,
wertigkeit: int,
) -> None:
self.name = name
self.wert = wertigkeit
Code: Alles auswählen
class Sonderkarte(Karte):
def __init__(
self, name: str, wertigkeit: int, sonderfunktion: int, beschreibung: str = ""
) -> None:
super().__init__(name, wertigkeit)
specialkarten = {
1: "Karte vom Nachziehstapel an Mitspieler weiter geben",
2: "Eigene Karte an Mitspieler weiter geben",
3: "Karte mit einem Mitspieler tauschen",
4: "Karte von einem Mitspieler anschauen",
5: "Eigene Karte anschauen",
}
self.sonder = sonderfunktion
self.beschreibung = specialkarten[sonderfunktion]