Dim Feld Mischen?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

bruce85

Betreff: Dim Feld Mischen?

BeitragMo, März 12, 2007 10:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe folgendes problem und zwar möchte ich die felder die größer als 2 sind, mischen:

Code: [AUSKLAPPEN]
For F_yy=0 To 0
  For F_xx=0 To 8
    If Spielbrett(F_xx,F_yy) > 2 Then

    EndIf
  Next
Next


Sollte ich ambesten ein neues Feld erstellen für Mischen?
z.B. Dim Mischen(6)
Sry, hab nie viel deamit rumgespielt für die felder zu mischen, daher weiss ich leider nicht, wie ich vorgehen muss.

Also die felder die größer als 2 sind, sollen komplet vertauscht werden, hier mal die Daten:

Code: [AUSKLAPPEN]
Data 0,10,3,23,21,1,1,1,0


Es wäre sehr nett, wenn mir einer ein tip geben könnte, wie ich das ambesten mache.
Vielen Dank.

MfG Andreas
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250

SpionAtom

BeitragMo, März 12, 2007 11:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich mach das immer so, dass ich zwei zufällige Felder nehme und deren Inhalt vertausche. Das ganze mache 100 mal (je nach belieben) - und dann ist alles gut durchgemischt.
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
 

bruce85

BeitragMo, März 12, 2007 11:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke dir, aber ich möchte das die Frame der felder nicht verloren gehen, z.B. net das ein frame in ein anderer frame überschrieben wird, sonder ich möchte die vorhandene felder vertauschen.
Dafür sollte man ein weitere Dim Feld für das Mischen anlegen, aber ich weiss dann nicht wie ich es dann anwenden kann, um es dann zu mischen.

Du meinst bestimmt sowas oder so ähnlich:
Code: [AUSKLAPPEN]
Spielbrett(F_xx,F_yy) = Rnd(3,31)

oder?
weil so werden ja zufällige Frames generiert.

MfG Andreas
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250

BladeRunner

Moderator

BeitragMo, März 12, 2007 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, er sagte doch dass er den Inhalt austauscht.

Vorgehen:

Ermitteln einer Position per Zufall (x = rand(kartengroesse), y= ...)
Prüfen ob das Feld deinen Anforderungen entspricht (if map(x,y) >2...
Ansonsten ggf. Neue Zufallsposition ermitteln.
Speichern des Inhaltes in einer Temporären Variablen: Temp = map(x,y)
Ermitteln einer weiteren Position (siehe oben)
Ermitteln ob sie den Anforderungen entspricht (siehe oben), ansonsten ggf. neue Zufallspos. ermitteln.
Speichern des Inhaltes der neuen Position in der alten Position.
Speichern des temporären Inhaltes in der neuen Position.
Wiederholen je nach Kartengröße beliebig oft.
Fertig.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group