Hilfe bei Zufall

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.
Antworten
freak123mak
User
Beiträge: 3
Registriert: Dienstag 4. Juni 2013, 12:56

Hallo,

Ich muss in Python ein Spiel programmieren.

Ich habe mich für das Spiel "Schiebefax" bzw. Bildpuzzle entschieden. Ich habe ein Bild in 9 Teile geschnitten und die sollen nun zufällig gemischt werden.

Habe es mit einer Liste und dann random versucht. Allerding mischt er mir die einzelnen Bilder nicht.... Kann mir jemand weiterhelfen???


b = [bild1,bild2,bild3,bild4,bild5,bild6,bild7,bild8]
random.shuffle(b,random.random)


Das oben in fett ist mein versuch. klappt allerdings nicht... wie kann ich die postionen mischen?!

Gruß!
BlackJack

@freak123mak: Was heisst „klappt nicht” denn genau? Der Rechner explodiert? Es gibt eine Fehlermeldung? Wenn ja, welche? Komplett bitte mit Traceback.

Wie bist Du auf den Quelltext gekommen? Welche Dokumentation hat Dir diesen Aufruf beschrieben?

Edit: Ich sehe gerade, dass `shuffle()` tatsächlich auch optional eine Zufallsfunktion entgegennimmt. Dann frage ich mich noch mehr was denn da nun nicht funktionieren soll.
freak123mak
User
Beiträge: 3
Registriert: Dienstag 4. Juni 2013, 12:56

Hier quasi mal ein Aussschnit aus dem Programm.

# Bild 5
bild5 = Spielobjekt()
bild5.bildname = "5.gif"
bild5.breite = 150
bild5.höhe = 150
bild5.positionX = 155
bild5.positionY = 150

spielfeld.hinzufügen( bild5 )

und dann kommt schon meine Zufallsfunktion.
(Natürlich geht das oben von Bild1-Bild9)

Ohne die Zufallsfunktion, öffnet sich beim ausführen das fenster mit dem entsprechenden Bildstücken,sodass das bild zu erkennen ist. Mit der Zufallsfunktion öffnet sich nur ein leeres Fenster. (also kein Fehler o.Ä.)

Gruß!

P.s. Spielfeld sowie Spielobjekt sind extra geschriebene "Programme" auf die ich einfach zugreife indem sie im selben Ordner liegen wie mein Spielquelltext...
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

freak123mak hat geschrieben:spielfeld.hinzufügen( bild5 )

und dann kommt schon meine Zufallsfunktion.
(Natürlich geht das oben von Bild1-Bild9)
Welchen Code verwendest du genau?

Code: Alles auswählen

random.shuffle(spielfeld)
So etwas? Und was für ein Datentyp ist spielfeld eigentlich?
freak123mak hat geschrieben:P.s. Spielfeld sowie Spielobjekt sind extra geschriebene "Programme" auf die ich einfach zugreife indem sie im selben Ordner liegen wie mein Spielquelltext...
???. Diese Erklärung klingt ... ungewöhnlich.
freak123mak
User
Beiträge: 3
Registriert: Dienstag 4. Juni 2013, 12:56

spielfeld und spielobjekt sind einfach von mir definierte unterklassen von tkinter.

das "spielfeld.hinzufügen(bild5)" hat eig. nichts mit dem mischen zu tun. Es fügt NUR auf die Unterklasse Spielfeld das bild ein. In "normaler Sprache" auf das Spielbrett die Spielfigur.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@freak123mak: es klingt unwahrscheinlich, dass die sortierte Liste der Bilder dargestellt wird, eine gewürfelte Liste dagegen nicht. Du mußt also außer würfeln noch irgendetwas anderes anders machen.

Übrigens sind »bild1« bis »bild9« schlechte Variablennamen. Sobald Du anfängst in Namen Nummern zu verwenden, willst Du eigentlich eine Liste benutzen.
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

freak123mak hat geschrieben:spielfeld und spielobjekt sind einfach von mir definierte unterklassen von tkinter.
Und spielfeld ist dann tatsächlich eine Sequenz auf die man random.shuffle anwenden kann?
Antworten