Problem mit einfachem Kartenspiel Programm
Verfasst: Freitag 11. Januar 2019, 16:53
Hey,
ich bin ein Neuling mit Python und versuche gerade ein Kartenspiel nachzuprogrammieren. An einer Stelle komme ich gerade nicht weiter:
Ich habe zwei Klassen, eine für die Karten und eine für das Deck:
---------------------------------
import random
farben = ("Herz", "Karo", "Pik", "Kreuz")
symbole = ("Zwei", "Drei", "Vier", "Fünf", "Sechs", "Sieben", "Acht", "Neun", "Zehn", "Bube", "Dame", "König", "Ass")
werte= {"Zwei":2, "Drei":3, "Vier":4, "Fünf":5, "Sechs":6, "Sieben":7, "Acht":8, "Neun":9, "Zehn":10, "Bube":10, "Dame":10, "König":10, "Ass":11}
class Karte:
def __init__(self, farbe, symbol):
self.farbe = farbe
self.symbol = symbol
def __str__(self):
return self.farbe + "-" + self.symbol
class Deck:
def __init__(self):
self.deck = []
for farbe in farben:
for symbol in symbole:
self.deck.append(Karte(farbe,symbol))
def shuffle(self):
random.shuffle(self.deck)
def dealen(self):
karte = self.deck.pop()
return karte
def __str__(self):
deck = ""
for karte in self.deck:
deck += "\n" + karte.__str__()
return deck
-------------------------------------------------
Jetzt würde ich später gerne überprüfen, ob sich eine bestimmte Karte in self.deck befindet. Etwa in dieser Form:
------------------------------------------------
neues_deck = Deck()
def kartenwahl():
neue_karte = input("Welche Karte wählst du?")
if neue_karte in neues_deck.deck:
print("Diese Karte gibt es")
else:
print("Diese Karte gibt es NICHT")
kartenwahl()
--------------------------------------------
Leider funktioniert das einfach nicht und es wird immer das else statement gedruckt...
Kann mir jemand helfen?
Danke!!!
ich bin ein Neuling mit Python und versuche gerade ein Kartenspiel nachzuprogrammieren. An einer Stelle komme ich gerade nicht weiter:
Ich habe zwei Klassen, eine für die Karten und eine für das Deck:
---------------------------------
import random
farben = ("Herz", "Karo", "Pik", "Kreuz")
symbole = ("Zwei", "Drei", "Vier", "Fünf", "Sechs", "Sieben", "Acht", "Neun", "Zehn", "Bube", "Dame", "König", "Ass")
werte= {"Zwei":2, "Drei":3, "Vier":4, "Fünf":5, "Sechs":6, "Sieben":7, "Acht":8, "Neun":9, "Zehn":10, "Bube":10, "Dame":10, "König":10, "Ass":11}
class Karte:
def __init__(self, farbe, symbol):
self.farbe = farbe
self.symbol = symbol
def __str__(self):
return self.farbe + "-" + self.symbol
class Deck:
def __init__(self):
self.deck = []
for farbe in farben:
for symbol in symbole:
self.deck.append(Karte(farbe,symbol))
def shuffle(self):
random.shuffle(self.deck)
def dealen(self):
karte = self.deck.pop()
return karte
def __str__(self):
deck = ""
for karte in self.deck:
deck += "\n" + karte.__str__()
return deck
-------------------------------------------------
Jetzt würde ich später gerne überprüfen, ob sich eine bestimmte Karte in self.deck befindet. Etwa in dieser Form:
------------------------------------------------
neues_deck = Deck()
def kartenwahl():
neue_karte = input("Welche Karte wählst du?")
if neue_karte in neues_deck.deck:
print("Diese Karte gibt es")
else:
print("Diese Karte gibt es NICHT")
kartenwahl()
--------------------------------------------
Leider funktioniert das einfach nicht und es wird immer das else statement gedruckt...
Kann mir jemand helfen?
Danke!!!