Seite 1 von 1

Maumau

Verfasst: Samstag 22. Dezember 2007, 15:37
von Brafil
Hallo ich versuche mich an dem Spiel Maumau,
Ich hab jetzt alle Karten in einer Liste zusammengefasst, Aber wie kann ich dafür sorgen dass jede Karte nur einmal gezogen wird? Endlose
if a != b != c != d != e and b != c != d != e and...
Schleifen sind doof.

Verfasst: Samstag 22. Dezember 2007, 15:49
von BlackJack
Liste mit allen Karten erstellen, `random.shuffle()` auf die Liste anwenden, Karten mit der `pop()`-Methode ziehen. Bzw. wenn man mehrere Karten auf einmal ziehen will mit "slicing" Kopien erzeugen und dann den "slice" mit ``del`` aus der Kartenstapel-Liste entfernen.

Verfasst: Samstag 22. Dezember 2007, 15:56
von Brafil
Thanks, this was very helpful

Verfasst: Sonntag 23. Dezember 2007, 18:49
von Brafil
Ich habe ein Problem, um die Karten zu vergleichen. Wie kann ich die Karten in der mitte trennen? zb.

"Heart 7" = "Heart", "7"
"Diamond 7" = "Diamond", "7"

um sie zu vergleichen?

Verfasst: Sonntag 23. Dezember 2007, 19:00
von nemomuk
erstell halt eine 2-dimensionale Liste....

Code: Alles auswählen

liste = (("asd","asd"),("qwe","qwe"))

Verfasst: Sonntag 23. Dezember 2007, 19:09
von rafael
SchneiderWeisse hat geschrieben:erstell halt eine 2-dimensionale Liste....

Code: Alles auswählen

liste = (("asd","asd"),("qwe","qwe"))
Das ist ein Tupel, keine Liste. ;)

Schau am besten mal auf http://ada.rg16.asn-wien.ac.at/~python/ ... /kap15.htm
Da wird auch ein Kartenspiel in Python programmiert.

Verfasst: Sonntag 23. Dezember 2007, 19:20
von sma

Code: Alles auswählen

>>> "Herz 7".split()
['Herz', '7']
>>> 
Stefan

PS: Besser wäre wohl, Karten als Exemplare einer Karten-Klasse zu realisieren.

Code: Alles auswählen

class Card(object):
  def __init__(self, suit, rank):
    self.suit, self.rank = suit, rank

herz7 = Card('H', 7)

Verfasst: Sonntag 23. Dezember 2007, 22:10
von nemomuk
ach shuck, falsche Klammern...

Vielen Dank für den Hinweis...^^