Code: Alles auswählen
import random
def spielernamevergabe():
deck = []
nummer = list(range(7, 11))
value = nummer + ['Bube', 'Dame', 'Koenig', 'As']
farbe = ['Blau', 'Gruen', 'Gelb', 'Rot']
for elem in value:
for secondElem in farbe:
deck.append((str(elem), secondElem))
print("32 Skat Karten. Aufsteigend nach Zahl sortiert:")
print(deck)
random.shuffle(deck)
print("\nGemischt:")
print(deck)
anzahlSpieler = 0
actualKarte = []
stappel=[]
anzahlKarteProSpieler = 0
while True:
try:
anzahlSpieler = int(input('Es dürfen 2-4 Spieler mitspielen. Bitte Geben Sie die Anzahl der Teilnehmer an: '))
if 1 < anzahlSpieler < 5:
break
else:
print("Anzahl muss zwischen 2 und 4 liegen.")
except ValueError:
print("not a number")
spieler = []
for i in range(anzahlSpieler):
i=i+1
actualSpieler = input('Geben Sie für einen Namen für den ' + i.__str__() + '. Spieler ')
if actualSpieler.strip():
spieler.append(actualSpieler)
else:
spieler.append('Spieler*In '+i.__str__())
print(spieler)
while True:
try:
anzahlKarteProSpieler = int(input('Anzahl Karten pro Spieler? Anzahl ist zwischen 3 und 5 möglich: '))
if 2 < anzahlKarteProSpieler < 6:
break
else:
print("Anzahl Karten pro Spieler muss zwischen 3 und 5 liegen.")
except ValueError:
print("not a number")
[b]deck = []
verteilung = []
print(deck)
for x in spieler:
print('Spieler: '+x+' erhält nun die Karten.')
for y in range(anzahlKarteProSpieler):
verteilung.append((str(x), deck[0]))
deck.pop(0) #die Karten werden von der Liste gelöscht, da Sie einmalig verteilbar, nachdem Sie auf den Tisch gelegt werden, kommen Sie wieder auf die Stappel.[/b]
print(verteilung)
print(deck)
print('\nDie Restlichen '+str(len(deck))+' werden auf dem Tisch gelegt. Nun wird die oberste Karte umgedreht.')
spielernamevergabe()
actualKarte=deck[0]
stappel=actualKarte
deck.pop(0)
print('\nUnd die Karte ist: Zahl:'+actualKarte[0]+' Farbe:'+actualKarte[1]+'\n')
n = 0
for x in verteilung:
for i in spieler:
if i in x:
if n >=len(verteilung):
n=0
if actualKarte[0] in verteilung[n][1][0]:
print(str(verteilung[n][0]) + ' hat die Karte' + str(verteilung[n][1]) + ' hingelegt.\n')
actualKarte = verteilung[n][1]
stappel = actualKarte
print('\nDie neue Karte auf dem stappel ist ' + str(actualKarte) + '\n')
verteilung.pop(n)
n=n-1
elif actualKarte[1] in verteilung[n][1][1] :
print(str(verteilung[n][0]) + ' hat die Karte' + str(verteilung[n][1]) + ' hingelegt.\n')
actualKarte = verteilung[n][1]
stappel = actualKarte
print('\nDie neue Karte auf dem stappel ist ' + str(actualKarte) + '\n')
verteilung.pop(n)
n=n-1
else:
print(verteilung[n][0] + ' zieht eine neue Karte.\n')
verteilung.append((str(verteilung[n][0]), deck[0]))
deck.pop(0)
n+=anzahlKarteProSpieler;
print(verteilung)
print(deck)
deck = []
verteilung = []
print(deck)
for x in spieler:
print('Spieler: '+x+' erhält nun die Karten.')
for y in range(anzahlKarteProSpieler):
verteilung.append((str(x), deck[0]))
deck.pop(0)
Hier kommt in der Konsole ein IndexError: list index out of range. ich weiß nicht wo mein Fehler hier sein soll..
könnt ihr mir dabei helfen bitte.
Und könnt ihr mir bitte sagen, ob mein MauMauspiel Code so richtig ist,
Damit keine Fehlermeldung in den nächsten Zeilen vorkommt bitte
Danke im vorraus.
Rejes.