Maumau

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Brafil
User
Beiträge: 40
Registriert: Montag 17. Dezember 2007, 17:51
Wohnort: Istanbul

Maumau

Beitragvon Brafil » Samstag 22. Dezember 2007, 15:37

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.
Python + Blender = Super

"Le Python mangera Tout"

The Python is gonna eat everything

(Except for Java, there are too many fans)
BlackJack

Beitragvon BlackJack » Samstag 22. Dezember 2007, 15:49

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.
Brafil
User
Beiträge: 40
Registriert: Montag 17. Dezember 2007, 17:51
Wohnort: Istanbul

Beitragvon Brafil » Samstag 22. Dezember 2007, 15:56

Thanks, this was very helpful
Python + Blender = Super



"Le Python mangera Tout"



The Python is gonna eat everything



(Except for Java, there are too many fans)
Brafil
User
Beiträge: 40
Registriert: Montag 17. Dezember 2007, 17:51
Wohnort: Istanbul

Beitragvon Brafil » Sonntag 23. Dezember 2007, 18:49

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?
Python + Blender = Super



"Le Python mangera Tout"



The Python is gonna eat everything



(Except for Java, there are too many fans)
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Beitragvon nemomuk » Sonntag 23. Dezember 2007, 19:00

erstell halt eine 2-dimensionale Liste....

Code: Alles auswählen

liste = (("asd","asd"),("qwe","qwe"))
rafael
User
Beiträge: 189
Registriert: Mittwoch 26. Juli 2006, 16:13

Beitragvon rafael » Sonntag 23. Dezember 2007, 19:09

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.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Beitragvon sma » Sonntag 23. Dezember 2007, 19:20

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)
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Beitragvon nemomuk » Sonntag 23. Dezember 2007, 22:10

ach shuck, falsche Klammern...

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

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]