Array "aufrücken", Verbesserungsvorschläge?
Übersicht BlitzBasic Allgemein
pileBetreff: Array "aufrücken", Verbesserungsvorschläge? |
So, Feb 15, 2009 18:07 Antworten mit Zitat |
|
---|---|---|
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% |
hecticSieger des IS Talentwettbewerb 2006 |
So, Feb 15, 2009 19:29 Antworten mit Zitat |
|
---|---|---|
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 |
So, Feb 15, 2009 21:07 Antworten mit Zitat |
|
---|---|---|
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 |
So, Feb 15, 2009 23:31 Antworten mit Zitat |
|
---|---|---|
Genau, also erstmal wollte ich schon mit Arrays arbeiten, weil ich damit besser klar komme. Und es sind zwei for-next Schleifen | ||
MfG. Pile
Aktuelles Projekt: Irgendwas in den BlitzEditor eintippen und sehen ob was dabei rauskommt. Fortschritt: ca. 3.141592653589793238% |
RallimenSieger des 30-EUR-Wettbewerbs |
Mo, Feb 16, 2009 0:41 Antworten mit Zitat |
|
---|---|---|
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+]
|
Übersicht BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group