 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 23.11.2006, 17:46 Titel: neustart / alle variablen =0 |
|
|
hallo, wie kann ich ein Programm in fb neustarten ?
Es geht um ein Spiel, bei dem man die Möglichkeit haben soll wenn man gestorben ist, neu zu beginnen. Dazu müssten entweder ALLE VARIBLEN 0 werden oder das prog müsste beendet und gleich neugestartet werden (ohne das es der user mitbekommt am besten). Ich hoffe jemand kann mir helfen. |
|
Nach oben |
|
 |
Key

Anmeldungsdatum: 03.10.2006 Beiträge: 95
|
Verfasst am: 23.11.2006, 17:54 Titel: |
|
|
In QB ging das mit "CLEAR" aba in freebasic muss man glaub ich alle variablen eineln zurücksetzen... |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 23.11.2006, 18:45 Titel: |
|
|
Ja, muss man.
Man muss alles zurück sezten, und das manuel:
Englische Referenz hat Folgendes geschrieben: | The keyword CLEAR was used in QB to erase all variables, close all files, and optionally change the stack size. This use is not supported in FB. |
Also musst du alles zurücksetzen.
Man kann sich das aber auch vereinfachen, wenn man "einfach" das hauptprogramm in ne Sub schreibt, und die dann aufruft:
Code: |
Sub hauptprogramm
Dim bla as String
Dim x as integer
Print bla, x 'soll zeigen, dass beim 2.mal alles 0 ist
bla="muh"
Print bla, x
End Sub
hauptprogramm 'startet das prog
hauptprogramm 'und ein 2.mal laufen lassen ;)
|
_________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 23.11.2006, 18:46 Titel: |
|
|
Eine ganz einfache Möglichkeit, benötigt gar kein Clear: Code: | Option Explicit
Const Pi=4*Atn(1)
Dim As Integer a, b, c
Dim As String Parameter
?Pi
?a
?b
?c
Sleep
a=19
b=4
c=56
?a
?b
?c
?Command(0)
Sleep
Run Command(0) | ..sollen allerdings Parameter übergeben werden, wird's komplizierter..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 23.11.2006, 18:57 Titel: |
|
|
ähm....
das wird ne endlosschleofe, und das prog beendet sich nie  _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 23.11.2006, 20:29 Titel: |
|
|
Ich weiß
..es ging aber um das Neustarten mit gelöschten Variablen..
..dank der Sleep-Anweisungen kann das Programm aber mit:
-Ctrl-C
-Alt-F4
..und weiteren Möglichkeiten beendet werden..
Ich hab doch keine Ahnung, wo und wie eine If-Anweisung in ein Programm
eingebaut wird, das ich noch nie gesehen habe
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 24.11.2006, 14:29 Titel: |
|
|
[quote="programmierer"]Ja, muss man.
Man muss alles zurück sezten, und das manuel:
Englische Referenz hat Folgendes geschrieben: | The keyword CLEAR was used in QB to erase all variables, close all files, and optionally change the stack size. This use is not supported in FB. |
Dazu fällt mit nur OMG ein. Wiso bauen die das aus ???
Warscheinlich weils auch "unsauber" ist wie GOTO etc.
(So ein Schwachsinn...) |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 24.11.2006, 15:10 Titel: |
|
|
Nein, ich denke nicht desswegen.
Ich vermute mal, das es eine höllen arbeit ist, alles auf 0 zu setzen, strings leeren, und andere sachen zu machen. Und wenn es dann mit Pointern losgeht, dann wirds richtig kompliziert. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 25.11.2006, 00:36 Titel: |
|
|
Ich glaube auch, dass das der Grund ist. Denkt mal an Arrays, Datenpuffer von ALLOCATE und IMAGECREATE, etc...
Anyway, ich habe den Befehl CLEAR in der Alles-Löschen-Variante noch nie gebraucht. I.d.R. organisiere ich meine Progs so ähnlich, wie programmierer das Vorgeschlagen hat - Alles in SUBs, und beim nächsten Aufruf sind die Variablen automatisch resetted.
Für manche sehr speziellen Situationen (arbeit mit SHARED Pointern) bietet es sich an, eine extra Sub ClearVars zu schreiben. Vorteil ist hierbei, dass man tatsächlich nur die Variablen löschen muss, die man nicht gleich wieder mit den selben werten belegen würde, die sie zuvor schon hatten. Ist z.B. für das Menü nicht unpraktisch, das i.d.R. ja vor und nach einem Reset exakt identisch aussieht...
Auch Grafiken müssen so nur einmal geladen werden, was komfortabel in der Constructor erledigt werden kann.
Anyway, CLEAR in Form von Reset All ist absolut nicht nötig.
Man wird zwar durch den Verzicht dieser Methode dazu gezwungen, den Code ein bisschen zu strukturieren, und schon im vornherein zu wissen, welche Funktionen man verwenden will, bzw. welche Aufgaben man an welche Funktionen verteilen möchte. Aber... nun, sich vor Projektbeginn Gedanken in diese Richtung zu machen bringt noch ganz andere Vorteile, als die Freiheit, CLEAR nicht benutzen zu müssen
Have a nice day
Ciao _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|