Array "aufrücken", Verbesserungsvorschläge?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

pile

Betreff: Array "aufrücken", Verbesserungsvorschläge?

BeitragSo, Feb 15, 2009 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, folgendes Beispiel löscht, bei Tastatur-druck auf die gewünschte Zahlentaste, einen Wert aus dem Array und rückt den Rest nach unten auf:
Code: [AUSKLAPPEN]
Graphics 600,480,16,0;Auflösung und Fensterangaben
Dim Testarry(20)
Global Anzahl=20
;Array füllen
For i = 1 To Anzahl
   Testarry(i) = i
Next
Repeat
   Cls
   For i = 1 To Anzahl
      Text 10, 10 + 10 * i, Testarry(i)
      If KeyHit(i+1)
         g=i
      EndIf
   Next
   If g>0
      For s=g To Anzahl-1
         Testarry(s)=Testarry(s+1)
      Next
      Testarry(Anzahl)=""
      Anzahl=Anzahl-1
      g=0   
   EndIf   
   Flip
Until KeyHit(1)
End

Klappt auch alles. Aber mir kommt das ganze etwas zu lang und vor allem zu kompliziert vor. Hätte jemand eventuell einen Vorschlag zur Optimierung? Das wäre sehr nett, danke!
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Feb 15, 2009 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Nimm anstelle ein Type. Dieses ''rückt'' bei einer Löschung automatisch auf. Das heisst, die Inhalte werden nach wie vor nacheinander ausgeführt. Es gibt also keine Umsortierung. Außerdem hat man ggf. noch eine Kontrolle darüber, wo (Anfang oder Ende) neue Inhalte eingefügt werden sollen.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

SpionAtom

BeitragSo, Feb 15, 2009 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber wenn es um Array aufrücken geht, dann würde ich das genauso machen, wie du es machst. Was gefällt dir daran nicht? Ist doch nur eine einzige Schleife...

Edit: ...einie einzige Schleife beim löschen...
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
  • Zuletzt bearbeitet von SpionAtom am So, Feb 15, 2009 23:44, insgesamt einmal bearbeitet

pile

BeitragSo, Feb 15, 2009 23:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau, also erstmal wollte ich schon mit Arrays arbeiten, weil ich damit besser klar komme. Und es sind zwei for-next Schleifen Wink
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238%

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, Feb 16, 2009 0:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe früher auch mehr mit Array gearbeitet, weilich das mit den types nicht sofort verstanden habe.
Aber Types sind in vielen Fällen einfacher..
..wie dieses Beispiel wieder belegt.

Code: [AUSKLAPPEN]
Graphics 600 ,480,16,0;Auflösung und Fensterangaben
Type Name Field Kennziffer End Type
Global Anzahl = 20
;Array füllen
For i = 1 To Anzahl
    z.Name = New Name
    z\Kennziffer = i
Next

Repeat
    Cls
    Zaehler = 0
    For z.Name = Each Name
        Text 10 , 10 + 10 * Zaehler, z\Kennziffer
        If KeyHit (Zaehler + 1) Then Delete z.Name
        Zaehler = Zaehler + 1
    Next
    Flip
Until KeyHit (1)

End
[BB2D | BB3D | BB+]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group