DIC - Skriptsprache für PureBasic
Verfasst: 19.11.2007 21:30
Tachchen,
ich habe zur Zeit ein kleines Nebenprojekt was ich euch hier mal zeigen möchte.
Es ist ein dynamicher interner Compiler (über den Namen kann noch geredet werden) der es ermöglicht einen PB-Code in einer Fertigen Anwendung auszuführen ohne sie zu Compilieren.
Hintergrund war/ist es, eine ScriptSprache für eine KI zu schreiben, die ähnlich dem PB-Syntax ist.
Zur Zeit sind Volgende Dinge schon möglich:
- Variableninhalte von Anwendung zu DIC austauschen
- Ändern/Benutzung von diesen Variablen
- komplexe Mathematische Terme werden berechnet.
- Einfache Aussagenlogik ist enthalten
- Schleifen/Abfragen
Was noch kommen soll:
- Verbesserung der Syntaxüberprüfung
- Arrays
Hier das IncludeFile`
(Ist 3.3, sind aber nur kleine änderungen für 4.x nötig)
Hier ein BeispielCode wie man es verwenden kann:
Damit könnte man nun zB. ein Spiel schreiben wo sich die die KI der Situation anpassen und ihre eigen eigene Code schreiben/anpassen der dann im Spiel ausgeführt wird.
Wie gesagt: Das ist erst der Anfang, ich werden immer weiter dran arbeiten und dinge hinzufügen.
ich habe zur Zeit ein kleines Nebenprojekt was ich euch hier mal zeigen möchte.
Es ist ein dynamicher interner Compiler (über den Namen kann noch geredet werden) der es ermöglicht einen PB-Code in einer Fertigen Anwendung auszuführen ohne sie zu Compilieren.
Hintergrund war/ist es, eine ScriptSprache für eine KI zu schreiben, die ähnlich dem PB-Syntax ist.
Zur Zeit sind Volgende Dinge schon möglich:
- Variableninhalte von Anwendung zu DIC austauschen
- Ändern/Benutzung von diesen Variablen
- komplexe Mathematische Terme werden berechnet.
- Einfache Aussagenlogik ist enthalten
- Schleifen/Abfragen
Was noch kommen soll:
- Verbesserung der Syntaxüberprüfung
- Arrays
Hier das IncludeFile`
(Ist 3.3, sind aber nur kleine änderungen für 4.x nötig)
Hier ein BeispielCode wie man es verwenden kann:
Code: Alles auswählen
IncludeFile "DIC.pb"
SetDICVar("MeineVariable", "1")
SetDICVar("DeineVariable", "2")
Code$ = ""
Code$ + "MeineVariable = DeineVariable + 3 :"
Code$ + "DeineVariable=MeineVariable-5 :"
Code$ + "IF DeineVariable = 0 :"
Code$ + " DeineVariable=#PI :"
Code$ + "ENDIF:"
Code$ + "IF DeineVariable = #PI :"
Code$ + " FOR j=1 TO 2 :"
Code$ + " IF MeineVariable = 5 AND UUU = 0 :"
Code$ + " GrößteZahl = 123:"
Code$ + " ENDIF :"
Code$ + " NEXT :"
Code$ + "ENDIF:"
Code$ + "FOR n = 1 TO 3 :"
Code$ + " Reihe = Reihe + n :"
Code$ + " FOR i = 1 TO 2 :"
Code$ + " u = n*i:"
Code$ + " NEXT :"
Code$ + "NEXT :"
StartDebuggerDIC()
RunDIC(Code$)
Debug LastErrorDIC()
Debug "----"
Debug "MeineVariable = "+GetDICVar("MeineVariable")
Debug "DeineVariable = "+GetDICVar("DeineVariable")
Debug "n = "+GetDICVar("n")
Debug "GrößteZahl = "+GetDICVar("GrößteZahl")
Debug "Reihe = "+GetDICVar("Reihe")
Wie gesagt: Das ist erst der Anfang, ich werden immer weiter dran arbeiten und dinge hinzufügen.