Code Abkürzen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mabox

Betreff: Code Abkürzen

BeitragSo, Jul 06, 2008 23:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab einen Code mit Positionsaufzählungen. Kann man den noch irgendwie abkürzen? bringt es was die Positionen irgendwie extern, oder mit "Data" zu speichern?
Code: [AUSKLAPPEN]
platz = Rand(1,7)
If platz = 1 Then
   sold = 1
   pos_x = 38
   pos_y = 212
EndIf
If platz = 2 Then
   sold = 1
   pos_x = 644
   pos_y = 215
EndIf
If platz = 3 Then
   sold = 2
   pos_x = 341
   pos_y = 279
EndIf
If platz = 4 Then
   sold = 2
   pos_x = 273
   pos_y = 281
EndIf
If platz = 5 Then
   sold = 2
   pos_x = 229
   pos_y = 258
EndIf
If platz = 6 Then
   sold = 3
   pos_x = 430
   pos_y = 241
EndIf
If platz = 7 Then
   sold = 3
   pos_x = 498
   pos_y = 241
EndIf
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

Eingeproggt

BeitragSo, Jul 06, 2008 23:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Soviel geht auf jeden Fall:
Code: [AUSKLAPPEN]
platz = Rand(1,7)
sold=(platz+1)/2
Select platz
  Case 1
    pos_x = 38
    pos_y = 212
  Case 2
    pos_x = 644
    pos_y = 215
  Case 3
    pos_x = 341
    pos_y = 279
  Case 4
   pos_x = 273
   pos_y = 281
  Case 5
   pos_x = 229
   pos_y = 258
  Case 6
   pos_x = 430
   pos_y = 241
  Case 7
   pos_x = 498
   pos_y = 241
End Select


Die Überlegung mit Dim is sicher nicht blöd.. probiers mal. Kommt aber auch iwie drauf an, wie oft du diese Entscheidung zu treffen hast. Wenns nur einmal vorkommt, würd cihs so wie oben machen, ansonsten Dim.

mfG, Christoph
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Silver_Knee

BeitragSo, Jul 06, 2008 23:54
Antworten mit Zitat
Benutzer-Profile anzeigen
platz = Rand(1,7)
Select platz
Case 1
Restore platz1
Case 2
Restore platz1
Case 3
Restore platz1
Case 4
Restore platz1
Case 5
Restore platz1
Case 6
Restore platz1
Case 7
Restore platz1
End Select
Read pos_x,pos_y,solid

und dann halt gottweißwo data... ist auf jeden übersichtlicher würd ich sagen

mabox

BeitragSo, Jul 06, 2008 23:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok Danke schonmal!

@Eingeproggt
das mit Code: [AUSKLAPPEN]
sold=(platz+1)/2
funktioniert leider nicht, weil das auch ungregelmäßig ist.

hattest du das mit den Dims so gemeint?
Code: [AUSKLAPPEN]
Dim sold(7), pos_x(7), pos_y(7)
sold (1) = 1
sold (2) = 1
sold (3) = 2
sold (4) = 2
sold (5) = 2
sold (6) = 3
sold (7) = 3

pos_x(1) = 38
pos_x(2) = 644
pos_x(3) = 341
pos_x(4) = 273
pos_x(5) = 229
pos_x(6) = 430
pos_x(7) = 498

pos_y(1) = 212
pos_y(2) = 215
pos_y(3) = 279
pos_y(4) = 281
pos_y(5) = 258
pos_y(6) = 241
pos_y(7) = 241

platz = Rand(1,7)
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

Silver_Knee

BeitragMo, Jul 07, 2008 0:05
Antworten mit Zitat
Benutzer-Profile anzeigen
falls du das so machen würdes... würdest du Arbeitsspeicher in den Ofen schießen Wink bei n Paar werten egal.. aber normalerweise kann man das sparen

mabox

BeitragMo, Jul 07, 2008 0:12
Antworten mit Zitat
Benutzer-Profile anzeigen
@Silver_Knee
Nach deinem Beispiel müsste das so aussehen wenns fertig ist oder?
Code: [AUSKLAPPEN]
platz = Rand(1,7)
Select platz
   Case 1
      Restore platz1
   Case 2
      Restore platz2
   Case 3
      Restore platz3
   Case 4
      Restore platz4
   Case 5
      Restore platz5
   Case 6
      Restore platz6
   Case 7
      Restore platz7
End Select
Read pos_x,pos_y,sold

.platz1
Data 38,212,1
.platz2
Data 644,215,1
.platz3
Data 341,279,2
.platz4
Data 273,281,2
.platz5
Data 229,258,2
.platz6
Data 430,241,3
.platz7
Data 498,241,3

Silver_Knee

BeitragMo, Jul 07, 2008 0:38
Antworten mit Zitat
Benutzer-Profile anzeigen
jop genau, wird halt Ewigkeiten länger, wenn man's erweitern will ist dafür aber trotzdem flexibel.

Kannst ja auch Case1:Restore platz1schreiben um zeilen zu sparen...

mabox

BeitragMo, Jul 07, 2008 7:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, danke!
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

BladeRunner

Moderator

BeitragMo, Jul 07, 2008 11:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Das einzige was ich hier zum vereinfachen empfehlen kann ist in den Werten nach Gesetzmäßigkeiten zu suchen und sie dann mit einer Formel zu bestimmen. Da ich den konkreten Verwendungszweck nicht kenne ist das etwas schwierig, aber üblicherweise haben viele Programminternen Abläufe eine mehr oder weniger offensichtliche Struktur.
Die Koordinaten die Du da bestimmst, weshalb sind die so bunt verstreut? Gibt es Möglichkeiten die Koordinaten in ein mathematisches Raster zu bringen?
Ansonsten halte ich die restore-Variante für daneben, denn Übersichtlichkeit ist damit nicht gegeben und für die Handvoll Daten ist ein Array dann nicht daneben (Mal ganz ab von der Tatsache dass die in Datas gespeicherten Werte ebenfalls mit in den Speicher geladen werden und es daher eh wurscht ist ob sie dort 4 byte belegen pro wert oder im Array 4 Byte belegen pro Wert.)
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

mabox

BeitragMo, Jul 07, 2008 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
In den Werten gibt es keine Gesetzmäßigkeiten und in ein mathematisches Raster bringen kann ich sie in diesem Fall auch nicht.

Weil es aber nur so wenige Werte ist die Übersicht noch ganz ok wenn man die restore-Variante benützt.
Von der Codelänge ist es eigentlich egal ob ich die restore-Variante oder Arrays nehme weil das auch ziemlich gleich lang ist.
Ich glaub ich lass es einfach so wie ichs jetzt hab Wink
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group