Scriptsprache->if

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

coolo

Betreff: Scriptsprache->if

BeitragSo, Dez 02, 2007 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo alle miteinand,
Da ich ja begonen hab ein rpg zu machen(geht schon voran) habe ich mich dazu entschlossen eine Scriptsprache dazu zu entwickeln, Variabeln und so geht ja aber bei if komme ich ins stottern...wie macht man das? Hab da mal was von einem setepin Prinzip gehört, aber wie wende ich das an. Bitte kein Bespiel Code möchte selber draufkommen, brauch nur einen denkansatz.

Danke schon im vorraus.
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat

Eingeproggt

BeitragSo, Dez 02, 2007 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Du wirst dir die Zeile mit den Stringbefehlen zerlegen müssen. Ich weiß nicht, wie du es bis jetzt aufgebaut hast, aber dass du es zB in
Befehl="if"
parameter1="Spielerx"
parameter2="23"
operator="="
trennst und dann einfach das irgendwie realisierst:
Code: [AUSKLAPPEN]
Select Befehl
  Case "if"
    Select Operator
      Case "="
        If parameter1=parameter2 Then
          ;TU WAS!^^
        Endif
    End Select
End Select


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

Noobody

BeitragSo, Dez 02, 2007 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde es so machen wie Eingeproggt es vorschlägt.
Nur musst du beachten, dass es verschiedene Schreibweisen geben kann (z.B. 'If variable1 = variable2 Then' oder 'If variable1=variable2 Then').
Also entweder die Form genau festlegen oder beim Einlesen den Code umwandeln (in diesem fall zum Beispiel die Leerzeichen rausstreichen).
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun
  • Zuletzt bearbeitet von Noobody am Mo, Dez 03, 2007 10:20, insgesamt einmal bearbeitet

coolo

BeitragSo, Dez 02, 2007 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Und was ist wenn es über mehrere Zeilen geht?
bsp:
if dd=1 then
ee=1
bb=1
eif
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat

ChaosCoder

BeitragSo, Dez 02, 2007 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde es auch so machen wie Eingeproggt schon geschrieben hat, die bedingung parsen und dann auswerten, wenn die bedingung wahr is wird der code bis zum endif oder bis zum else/elseif ausgeführt, wenn nicht dann wird er einfach übersprungen.

Ach und The_Nici: Es gibt keine Ifschleifen Very Happy Aber danke, dass du gesagt hast, was ich gedacht habe. Als ich den Thread hier gelesen habe hab ich nur so gedacht "Omg, vllt mal seinen ersten Beitrag richtig durchlesen und ihn versuchen zu verstehen und dann erst ne antwort posten" xD
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

Noobody

BeitragSo, Dez 02, 2007 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann musst du zuerst die Position des EndIfs (oder /eif, wie auch immer) ausfindig machen und im Raum zwischen If und EndIf die Befehle auslesen und interpretieren.

EDIT: Mist, ein paar Sekunden zu spät^^
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun
  • Zuletzt bearbeitet von Noobody am So, Dez 02, 2007 21:38, insgesamt einmal bearbeitet

coolo

BeitragSo, Dez 02, 2007 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah Danke, werde es versuchen in Tat umzusetzen.
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat

The_Nici

BeitragSo, Dez 02, 2007 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
ChaosCoder hat Folgendes geschrieben:


Ach und The_Nici: Es gibt keine Ifschleifen Very Happy Aber danke, dass du gesagt hast, was ich gedacht habe. Als ich den Thread hier gelesen habe hab ich nur so gedacht "Omg, vllt mal seinen ersten Beitrag richtig durchlesen und ihn versuchen zu verstehen und dann erst ne antwort posten" xD

Ich nenne alles eine Schleife, was Anfang und Ende hat. :>
Jaah, es ist eine Bedingung.

ChaosCoder

BeitragSo, Dez 02, 2007 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
coolo ich shcätze du musst das ganze doch noch ein wenig anders machen als Eingeproggt beschrieben hat.
Besonders, wenn du planst auch komplexere Bedingungen einbauen zu können.
Code: [AUSKLAPPEN]
IF spielerx=sin(90+spielerr)*variable1 or blubb=3-1*spielerbluuub
     fade=2
endif

Hier brauchst du eine rekursive Funktion die die einzelnen variablen durch ihre werte ersetzt und dann die rechnungen ausrechnet, kp ob du sowas schonmal gemacht hast, im Codearchiv gibts den "Mathe-Parser", der sollte auch rekursiv sein, allerdings hab ich grad gesehen, dass er nicht so gut programmiert worden ist, naja soll dir ja auch nur einen ansatz liefern.
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

coolo

BeitragMo, Dez 03, 2007 19:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Mhmm, ich hätte nicht gedacht, dass das mit ifs so schwer ist...
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat

Noobody

BeitragMo, Dez 03, 2007 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kommt natürlich immer darauf an, was du machen willst.
Da ich denke, dass du sicher mehrere Variablen abfragen musst, würde ich zumindest verschachtelte If - Abfragen einbauen.
Variablen müssen ja nicht unbedingt in der If - Abfrage berechnet werden - du könntest beim Überprüfen des Codes Berechnungen in der Bedingung vor die Abfrage stellen und diesen Wert zwischenspeichern und dann nur diesen abfragen.

Aber If's werden dich noch eine Weile beschäftigen - so einfach hast du die nicht vom Tisch Wink
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

coolo

BeitragDi, Dez 04, 2007 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich werde, nach dem Prinzip vorgehen, wenn ich eine Funktion brauche füge ich sie einfach hinzu. Aber das Abfragen mit einem Parameter geht schon Smile.
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat

coolo

BeitragFr, Dez 07, 2007 22:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Da habe ich nur ne Frage: bei for i=each appels wird immer das erste angelegte Type genommen gibts da auch die Möglichkeit die zuletzt erzeugen Types zu verwenden?
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat

The_Nici

BeitragFr, Dez 07, 2007 23:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Gab grad vorher so einen Thread.
Before, After, First, After, bliblablu

Noobody

BeitragSa, Dez 08, 2007 0:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Soweit ich weiss nicht.
Entweder du setzt die neuen Types beim Erstellen an den Anfang (wie von The_Nici erwähnt, der Befehl Insert, Before und First sollten dir dabei helfen) oder du machst eine For - Schleife, die so lang ist wie es Typeeinträge gibt, die dann zuerst das hinterste Type nimmt und sich danach nach vorne arbeitet.
Das wäre dann sowas wie
Code: [AUSKLAPPEN]
Um.Tiss = Last Tiss
For i = 0 To TypeEinträge - 1
     TuWasMitDemType
     Um = Before Um
Next
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group