ich brauche an ein paar Stellen von meinem Programm Hilfe, da ich schon gefühlt alles ausprobiert habe, aber nichts wirklich funktioniert. Ich bin Anfänger was das Programmieren angeht und wäre für jede Hilfe sehr Dankbar!:)
Zum Hintergrund des Codes, ich muss ein Projekt abgeben, dass ein Romme Spiel simuliert.
Hier mein Code:
global ausgewaehlte_karten
ausgewaehlte_karten = []
def ist_satz(hand, auswahl):
ausgewaehlte_karten = len(auswahl)
Vergleichsliste = []
for i in range(ausgewaehlte_karten):
Vergleichsliste.append(hand[int(auswahl) - 1][1])
if ausgewaehlte_karten == 3:
if Vergleichsliste[0] == Vergleichsliste[1] and Vergleichsliste[1] == Vergleichsliste[2]:
print("Die Karten bilden einen Satz.")
else:
print("Die Karten bilden keinen Satz.")
elif ausgewaehlte_karten == 4:
if Vergleichsliste[0] == Vergleichsliste[1] and Vergleichsliste[1] == Vergleichsliste[2] and Vergleichsliste[2] == Vergleichsliste[3]:
print("Die Karten bilden einen Satz.")
else:
print("Die Karten bilden keinen Satz.")
def ist_sequenz(hand, auswahl):
Vergleichsliste = []
global Auswahl
Auswahl = len(auswahl)
for i in range(Auswahl):
Vergleichsliste.append(hand[int(auswahl) - 1][1])
ausgewaehlte_karten.append(hand[int(auswahl) - 1])
hohe_werte = {"Bube": 11, "Dame": 12, "König": 13, "Ass": 14}
Vergleichsliste = [hohe_werte.get(x, x) for x in Vergleichsliste]
for i in range(Auswahl):
if type(Vergleichsliste) == type("string"):
Vergleichsliste = int(Vergleichsliste)
Vergleichsliste.sort()
if Auswahl == 3:
if (int(Vergleichsliste[0])+2 == int(Vergleichsliste[1])+1 and int(Vergleichsliste[1])+1 == int(Vergleichsliste[2])) or (int(Vergleichsliste[0])+1 == int(Vergleichsliste[1]) and int(Vergleichsliste[1]) == int(Vergleichsliste[2])-11):
print("Die Karten bilden eine Sequenz.")
else:
print("Die Karten bilden keine Sequenz.")
elif Auswahl == 4:
if (int(Vergleichsliste[0])+3 == int(Vergleichsliste[1])+2 and int(Vergleichsliste[1])+2 == int(Vergleichsliste[2])+1 and int(Vergleichsliste[2])+1 == int(Vergleichsliste[3])) or (int(Vergleichsliste[0])+2 == int(Vergleichsliste[1])+1 and int(Vergleichsliste[1])+1 == int(Vergleichsliste[2]) and int(Vergleichsliste[2]) == int(Vergleichsliste[3])-10):
print("Die Karten bilden eine Sequenz.")
else:
print("Die Karten bilden keine Sequenz.")
Eingabe = input("Soll ausgelegt werden (j/n)? ")
auswahl = []
if Eingabe == "j":
while len(auswahl) <4:
wahl = int(input("Welche Karte auslegen (1-14, Ende zum Beenden der Auswahl)?"))
auswahl.append(wahl)
if wahl == "Ende":
print("Ausgewählt:" ,auswahl)
print("Ausgewählt:" ,auswahl)
ist_satz(Hand_3, auswahl)
ist_sequenz(Hand_3, auswahl)
print("Ausgelegt wurden: " ,ausgewaehlte_karten)
#karten aus hand löschen Hand_3[wahl]
print("Hand 3:")
x = 1
for Karte in Hand_3:
print("Karte " ,x ,": " ,Karte)
x = x+1
Eingabe = input("Soll ausgelegt werden (j/n)? ")
auswahl = []
if Eingabe == "j":
while len(auswahl) <4:
wahl = int(input("Welche Karte auslegen (1-14, Ende zum Beenden der Auswahl)?"))
auswahl.append(wahl)
if wahl == "Ende":
print("Ausgewählt:" ,auswahl)
Ich hänge einmal an der Stelle, dass wenn die Eingabe == Ende ist, er mir das printen soll, was ich bisher in wahl eingegeben habe, also z.B. 1,2. Das erkennt er mir so momentan natürlich nicht an, da ich den input in ein int packen musste, da er mir sonst die Zahlen nicht anerkennt.
Mein zweites Problem wäre, dass wenn die Karten ausgewählt sind und ausgelegt werden, dass diese auch von der Hand Liste gelöscht werden, was ja im Prinzip die wahl darstellt, weswegen ich es auch mit del Hand_3[wahl] ausprobiert hatte, er mir dann aber nicht die ausgewählten Karten löscht, sondern die darauffolgenden.
Der Code ist nur ein Teil, da man den anderen für meine Probleme nicht benötigt, fals dies doch der Fall sein sollte, könnt ihr gerne bescheid geben.
Danke für jede Hilfe.
