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ß!
Hilfe bei Zufall
@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.
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.
-
- 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...
# 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...
Welchen Code verwendest du genau?freak123mak hat geschrieben:spielfeld.hinzufügen( bild5 )
und dann kommt schon meine Zufallsfunktion.
(Natürlich geht das oben von Bild1-Bild9)
Code: Alles auswählen
random.shuffle(spielfeld)
???. Diese Erklärung klingt ... ungewöhnlich.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...
-
- 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.
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.
@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.
Übrigens sind »bild1« bis »bild9« schlechte Variablennamen. Sobald Du anfängst in Namen Nummern zu verwenden, willst Du eigentlich eine Liste benutzen.