Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Mit PUT eins von 32 Arrays in Zufallsreihenfolge aufrufen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Crumbler



Anmeldungsdatum: 12.10.2005
Beiträge: 15

BeitragVerfasst am: 14.09.2007, 16:09    Titel: Mit PUT eins von 32 Arrays in Zufallsreihenfolge aufrufen Antworten mit Zitat

Hallo!

Ich versuche gerade ein Maumau-Spiel grafisch umzusetzen und habe folgendes Problem:

Ich habe die Grafik der "Karten" jeweils in ein Array geschrieben (also insgesamt 32 Stück).

Ich kann die Karten nun nach belieben auf dem Bildschirm erscheinen lassen, ich möchte aber, dass QB die Karten mischt. Dies funktioniert nicht, ich zeige mal an einem Beispiel wie ich es vorhatte:


-----------------------------------------------------------------------------------
PUT (100, 100), k32%, PSET 'So funktioniert es
-----------------------------------------------------------------------------------
RANDOMIZE TIMER
mischen% = INT(RND * 32)

IF mischen% = 32 THEN gemischt$ = "k32"

PUT (100, 100), gemischt$, PSET 'und genau hier liegt das Problem

------------------------------------------------------------------------------------

Jetzt meckert QB rum, das das Datenfeld gemischt$ nicht definiert wurde.

(Obwohl ich es ja genau genommen mit der IF Schleife definiert habe...)

Wie bringe ich QB jetzt bei, was ich von ihm will?


Könnt ihr mir da helfen???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 14.09.2007, 16:11    Titel: Antworten mit Zitat

http://forum.qbasic.at/viewtopic.php?t=4653 zwinkern

sollte fast 1:1 auf QB gehen...
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 14.09.2007, 18:05    Titel: Antworten mit Zitat

achja noch eins... schon wieder falsches forum! durchgeknallt
"Spezielle Fragen" bezieht sich auf Bibliotheken wie UGL oder DQB...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2457
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 14.09.2007, 20:10    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
achja noch eins... schon wieder falsches forum!

=> verschoben.

Zur Frage: Dieses Problem kann man sehr einfach lösen: Man muss mit dem Startindex bei PUT arbeiten! Wenn die 32 Bilder alle dieselbe Grösse haben, dann kannst Du sogar sehr einfach mit einem zweidimensionalen Array arbeiten.

Beispielcode (nicht getestet)
Code:
SCREEN 7

DIM a%(481, 31)

FOR i%=0 TO 31
  ' Bild i% generieren, z.B. BLOAD, ab .BMP laden usw.
  GET (0, 0)-(47, 39), a%(0, i%)
NEXT i%

' Zufälliges Bild anzeigen

b% = CINT(INT(32! * RND))
PUT (10, 10), a%(0, b%), PSET

Wichtig ist die Indexreihenfolge, d.h. in der QB-internen Speicheradressenberechnung sind die Indexe ganz links am niederwertigsten, die ganz rechts am höchstwertigen. Man kann dieses Verhalten übrigens mit
Code:
DIM a%(5, 5)

PRINT VARPTR(a%(0, 0))
PRINT VARPTR(a%(1, 0))
PRINT VARPTR(a%(0, 1))

sehr leicht verifizieren.

/edit: Praktische Anwendung im hier vorgestellten Spiel
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Crumbler



Anmeldungsdatum: 12.10.2005
Beiträge: 15

BeitragVerfasst am: 19.09.2007, 23:01    Titel: Antworten mit Zitat

Danke,

ich habs jetzt aber anders (aber leider auch komplizierter) gelöst. Eure Lösungen waren natürlich alle gut, aber für meine Zwecke leider nicht geeignet. (Ich musste für jede Karte eine eigene Variable haben)

VIELEN DANK TROTZDEM!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz