[GELÖST] flexible for-schleifen?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Boris1993

Betreff: [GELÖST] flexible for-schleifen?

BeitragSo, Mai 27, 2012 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo
gibt es eine einfache methode eine for-schleife so durchlaufen zu lassen, das sie z.B. von 0 bis 1 und dann von 1 nach -1 geht? mir fallen nur recht umständliche methoden ein, die nebenbei noch zu bugs führen
  • Zuletzt bearbeitet von Boris1993 am Mo, Mai 28, 2012 17:05, insgesamt einmal bearbeitet

Xeres

Moderator

BeitragSo, Mai 27, 2012 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht gibt es eine schlaue Vereinfachung deiner Problemstellung? Schwer zu sagen, wenn du nicht erklärst, was du eigentlich machen willst...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Holzchopf

Meisterpacker

BeitragSo, Mai 27, 2012 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Mir fallen da zwei Wege ein; ein einfacher und ein flexibler.

BlitzMax: [AUSKLAPPEN]
' die zu durchlaufenden Indexe in einem Array speichern
Local indexes:Int[] = [0,1,0,-1]
For Local i:Int = EachIn indexes
Print i
Next


BlitzMax: [AUSKLAPPEN]
' die Arithmetik, wie der Index laufen soll, festlegen
Local i:Int = 0
Local dir:Int = 1
Repeat
Print i
' Schleifen-Arithmetik und Abbruchbedingung selber machen
i :+ dir
If i = 2
i = 0
dir = -1
EndIf
If i = -2
Exit
EndIf
Forever


mfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

Boris1993

BeitragSo, Mai 27, 2012 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
For nx = 0 To 1 'dann zu -1
   For ny = 0 To 1 'dann zu -1
      
   Next
Next


Edit:

@Holzchopf
Danke, aber die "richtung" soll sich schon innerhalb des durchlaufs der for schleife ändern
ich hab schon versucht in der for schleife den index zu verändern aber das ging nich so wirklich

Der Eisvogel

BeitragSo, Mai 27, 2012 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Meine simple Lösung wäre Folgende:
BlitzBasic: [AUSKLAPPEN]
For Local _nx:Int = 1 To 3
Local nx:Int = (_nx Mod 3) - 1
For Local _ny:Int = 1 To 3
Local ny:Int = (_ny Mod 3) - 1
Print nx + ", " + ny
Next
Next


Das hat folgende Ausgabe:
Zitat:
0, 0
0, 1
0, -1
1, 0
1, 1
1, -1
-1, 0
-1, 1
-1, -1


Deiner Beschreibung nach ist es das was du suchst.

MfG
Der Eisvogel
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

FireballFlame

BeitragMo, Mai 28, 2012 12:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Da fand ich Holzchopfs erste Idee aber wesentlich simpler.
BlitzMax: [AUSKLAPPEN]
For Local nx:Int = EachIn [0, 1, -1]
For Local ny:Int = EachIn [0, 1, -1]
Print nx + ", " + ny
Next
Next

Solange es bei so wenigen Schleifendurchläufen bleibt, ist das sicherlich die übersichtlichste Variante.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit
 

Boris1993

BeitragMo, Mai 28, 2012 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
stimmt mit holzchopfs klappt es ich hab da nur was übersehn das es nich ganz so geklappt hat wie ich wollte

dann danke allen die geholfen haben und
viel spaß beim proggen

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group