Sprung Befehl???

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Nitro

Betreff: Sprung Befehl???

BeitragSa, Okt 22, 2005 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!!!!

Gibt es einen Sprung Befehl???

für diesen Quellcode?

BlitzBasic: [AUSKLAPPEN]


Graphics 800,600
SetBuffer BackBuffer()
Case \"start\"


a = LoadSound(\"Dateien\teg.wav\")
b = LoadImage(\"Dateien\teg1.jpg\")

PlaySound a


Cls

DrawImage b,0,200

Text 350,100,\"Bitte drücken sie mit der \"w\" taste um weiterzukommen\"





If KeyHit(17) Then ;sprung über end
While Not KeyDown(1)

Wend
End

Mathias-Kwiatkowski

BeitragSa, Okt 22, 2005 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
ja gibt es

BlitzBasic: [AUSKLAPPEN]

Graphics 800,600
SetBuffer BackBuffer()
Case \"start\"


a = LoadSound(\"Dateien\teg.wav\")
b = LoadImage(\"Dateien\teg1.jpg\")

PlaySound a


Cls

DrawImage b,0,200

Text 350,100,\"Bitte drücken sie mit der w taste um weiterzukommen\"





If KeyHit(17) Then Goto haha
While Not KeyDown(1)

Wend
End
.haha

;programm weiterlauf

Mathias-Kwiatkowski

BeitragSa, Okt 22, 2005 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
allerdings müssen wir mal eines festhalten,

sowas wie sprung marke usw.. hindest du in der hilfe siehe www.blitzbase.de

du spamst hier mehr wie ich das ist nicht gerade eine meisterleistung, versuch doch erst mal etwas selber rauszufinden, ich helfe dir auch gerne bei fragen, ich habe icq msn aol messenger

icq 287245050
msn mathiasamiga@msn.com
aol dinslaken1984

aber spam nicht das ganze forum dicht auch wenn du noop bist sollte man sprungmarken machen können ohne weitere hilfe

Xaron

BeitragSa, Okt 22, 2005 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Sprünge wie "goto" sind böse. Man kommt völlig ohne aus.

Gruß - Xaron
Cerberus X - Monkey X Reloaded!

Mathias-Kwiatkowski

BeitragSa, Okt 22, 2005 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
ja aber wenn ers doch wissen will Smile *lach*

Eclipse

BeitragSa, Okt 22, 2005 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
ich versteh nicht wieso alle diese sprünge als böse bezeichnen.
IF und ENDIF bestehehn im grunde doch auch aus JMP CMP JA JB blablabla
und das sind ja auch sprungbefehle

@mathias:
http://de.wikipedia.org/wiki/Spam

Hellfront

Betreff: Goto

BeitragSa, Okt 22, 2005 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Goto wurde früher bei Basic (hat nichts mit Blitz zu tun) benutzt weil man immer nur eine Zeile sah und diese direkt kompieliert wurde. Da man damals Zeilennummer hatte sprang man einfach dorthin wo man etwas nachträglich einfügen wollte und wieder zurück. Das war natürlich auf den ersten Blick ne gute Lösung aber dadurch entstand ein schrecklicher Spaghetti-Code und da man heute mehrere Zeilen sehen und kompilieren kann braucht man goto nicht und es ist auch besser so. Man sollte es sich gar nicht angewöhnen!!!

SpionAtom

BeitragSo, Okt 23, 2005 1:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt aber auch vereinzelt Fälle, wo ein Goto auch ganz angebracht ist.
Zum Bespiel, wenn man ganz am Ende des Codes angekommen ist. Und das Programm neustarten möchte. Dann finde ich ein goto .start überhaupt nicht "böse" Twisted Evil
 

MegaTefyt

BeitragSo, Okt 23, 2005 1:23
Antworten mit Zitat
Benutzer-Profile anzeigen
SpionAtom hat Folgendes geschrieben:
Es gibt aber auch vereinzelt Fälle, wo ein Goto auch ganz angebracht ist.
Zum Bespiel, wenn man ganz am Ende des Codes angekommen ist. Und das Programm neustarten möchte. Dann finde ich ein goto .start überhaupt nicht "böse" Twisted Evil


Da benutzt man eine Schleife... Rolling Eyes

x-pressive

BeitragSo, Okt 23, 2005 8:25
Antworten mit Zitat
Benutzer-Profile anzeigen
LoL - wer Befehle in "gut" oder "böse" trennt, beschneidet ja sein eigenes Werkzeug. Man kann alles irgendwann einmal brauchen, kommt nur darauf an, wie man es einsetzt.

Man kann GOTO auch inerhalb einer Funktion benutzen -was in einigen Situationen super-hilfreich und effizienter/sicherer als das rekursive Aufrufen der Funktion ist.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

Hellfront

BeitragSo, Okt 23, 2005 15:41
Antworten mit Zitat
Benutzer-Profile anzeigen
@x-pressive Wann soll denn Goto besser sein? Ich kenn nur fälle wo goto auf den ersten Blick viel leichter aussieht aber nach kurzem nachdenken schon ersetzt (effizienter) werden kann.

Xaron

BeitragSo, Okt 23, 2005 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
hacker, das würde mich jetzt auch mal interessieren. Wink

Gruß - Xaron
Cerberus X - Monkey X Reloaded!

x-pressive

BeitragSo, Okt 23, 2005 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier fand ich's recht nützlich:

Code: [AUSKLAPPEN]

Function ReadFiles()

   Local Dir.TDir, pathID%, file$, i%, j%, old_name$, new_name$
   Local path$ = CurrentDir$() + MEDIAPATH$ ;"
   If Right$  (path$,1) <> "\" And Len(path$) > 3 Then path$ = path$ + "\"
   If FileType(path$)    = 0 Return

   .AGAIN

   pathID = ReadDir(path$)

   Repeat
      file$    =  NextFile$(pathID)
      If file$ =  ""  Then Exit
      If file$ <> "." And  file$ <> ".." Then
         Select FileType(path$+file$)
         ; IS FILE
         CASE 1
            ; CHECK EXTENSION
            For i = 1 To 20
               If extensions$(i,1) = "" Or extensions$(i,2) = "" Then Exit
            
               ; DO SOMETHING...

            Next
            
         ; IS FOLDER
         CASE 2
            Dir = New TDir
            Dir\name$ = path$ + file$ + "\" ;"
         End Select
      End If
   Forever
   
   CloseDir pathID

   Dir =Last TDir : If Dir <> Null Then path$ = Dir\name$ : Delete Dir : Goto AGAIN

End Function


Anderes Beispiel: rekursiver Colorcheck in einem Columns-Game (womit man sich eben mit einem GOTO in der Funktion das rekursive Aufrufen ersparen kann).

Ich benutzer es aber auch in jedem meiner Games um z.B. nach der Hauptschleife wieder zum Titelmenü zu wechseln oder auch wenn der User den Grafikmodus ändert und ein Grafik-Neustart erforderlich ist. Alles in allem ein Befehl, der sparsam verwendet wird (wenn man's richtig macht) -der aber durchaus zu gebrauchen ist.

Oh, und es gibt noch einen kleinen Vorteil: unter gewissen Umständen (ich werde jetzt nicht zum hundertsten mal "in maßen" sagen ) erhöht GOTO die Lesbarkeit komplexerer Codes. Ein RETURN sagt dir nicht, wohin der Compiler springt. Ein GOTO schon.

Ich finde das immer so witzig: irgendein Anfänger übertreibt mal mit GOTOs (weil einfach zu benutzen), dann kommt einer, der sagt, das GOTO "böse" sei, um es ihm auszutreiben. Das geht dann so lange von Mund zu Mund bis jeder meint, auf diesem Befehl läge der Fluch des Bösen. Very Happy Man muß halt damit umgehen können.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
  • Zuletzt bearbeitet von x-pressive am So, Okt 23, 2005 18:38, insgesamt einmal bearbeitet
 

gulp

BeitragSo, Okt 23, 2005 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn man seine codes allerdings gut gliedert ,der versteht ihn sogar ,wenn goto drin ist Wink
gulp gulp hurra

SpionAtom

BeitragSo, Okt 23, 2005 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
MegaTefyt hat Folgendes geschrieben:
SpionAtom hat Folgendes geschrieben:
Es gibt aber auch vereinzelt Fälle, wo ein Goto auch ganz angebracht ist.
Zum Bespiel, wenn man ganz am Ende des Codes angekommen ist. Und das Programm neustarten möchte. Dann finde ich ein goto .start überhaupt nicht "böse" Twisted Evil


Da benutzt man eine Schleife... Rolling Eyes


Klar ist Goto ein Befehl, der immer ersetzt werden kann. Aber trotzdem ist es nicht gleich in jedem Fall unübersichtlicher.
Also die Blitzmacher werden sich schon was dabei gedacht haben, nicht auf Goto zu verzichten.

Und nochmal zu meinem Beispel: ein
goto .Start ist doch viel leserlicher als ein
Wend

Aber jeder hat sowieso seinen eigenen Stil. Und solange er damit zurecht kommt (und das Goto nicht nur aus Bequemlichkeitsgründen einsetzt), weiß ich gar nicht, warum sich einige darüber aufregen.
8)
 

MegaTefyt

BeitragSo, Okt 23, 2005 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm, nicht wenn du vernünftig einrückst.

Eclipse

BeitragSo, Okt 23, 2005 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
und wie siehts mit geschwindigkeit aus? (so ne nanosekunde kann ganz schön viel ausmachen^^)

Hellfront

BeitragMo, Okt 24, 2005 11:32
Antworten mit Zitat
Benutzer-Profile anzeigen
x-pressive hat Folgendes geschrieben:


Ich finde das immer so witzig: irgendein Anfänger übertreibt mal mit GOTOs (weil einfach zu benutzen), dann kommt einer, der sagt, das GOTO "böse" sei, um es ihm auszutreiben. Das geht dann so lange von Mund zu Mund bis jeder meint, auf diesem Befehl läge der Fluch des Bösen. Very Happy Man muß halt damit umgehen können.


ich gebs ja zu da hast du schon recht aber wenn man es einmal benutzt könnte man es ja nocheinmal benutzen oder nochmal oder vielleicht nur noch darauf zurückgreifen? Außerdem ist goto bei altprogrammieren wirklich nicht gut angesehen (ich denke die schauen auf die gute alte Basic zeit zurück^^)

Die Online Hilfe sagt volgendes (Speedoptimierung Tut):
Zitat:

#26 - Programmsprung
Vermeide Programmsprünge mit Goto, Gosub und Function. Je weniger, desto besser lautet hier die Devise. Dadurch kann aber die Größe des Quellcodes steigen.


aber auch :(auch wenns nicht direkt goto ist)
Zitat:

#25 - Gosub statt Function
Der Befehl Gosub ist wesentlich schneller als Function. Der Unterschied ist sogar sehr gewaltig. Darum nehmt besser Gosub. Dies kann aber oft zu unübersichtlichen Programmen führen.


mach es jeder wie er will ich werd die Leute immer noch auf s goto hinweisen bis es völlig ausgestorben ist *fg*

Xaron

BeitragMo, Okt 24, 2005 12:24
Antworten mit Zitat
Benutzer-Profile anzeigen
hacker3110 hat Folgendes geschrieben:
#25 - Gosub statt Function
Der Befehl Gosub ist wesentlich schneller als Function. Der Unterschied ist sogar sehr gewaltig. Darum nehmt besser Gosub. Dies kann aber oft zu unübersichtlichen Programmen führen.


Wobei das totaler Blödsinn ist. Gosub ist mitnichten wesentlich schneller als Function. Von einem "gewaltigen Unterschied" kann keine Rede sein.

Gruß - Xaron
Cerberus X - Monkey X Reloaded!

Jan_

Ehemaliger Admin

BeitragMo, Okt 24, 2005 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
goto ist tierrichst schnell.
between angels and insects

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group