BCC #28 - Scriptsprache
Übersicht

Gehe zu Seite Zurück 1, 2, 3, 4, 5, 6, 7, 8, 9 Weiter
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nicht schlecht, aber die Töne sind nicht so schön... ![]() Ich glaube nicht, dass du die DLL verwenden darfst. Mach das ganze lieber mit CommandLine ![]() Zu meine eigenen Fortschritten: ![]() ![]() ![]() ![]() ![]() ![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein, wie ich geschrieben hab nur standard installation ohne userlibs | ||
Warbseite |
![]() |
JimBobBalou |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also dann auch nich mit dem Beep-Befehl? | ||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Könntest ja den Beepbefehl der user32 nehmen die ist auf jedem Windows System vorhanden | ||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
standartinstallation bedeutet, keine dll's(muss man das eigentlich oft erklären was standartinstallation bedeutet?^^) | ||
Warbseite |
![]() |
Nova |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es heißt Standard, vielleicht kennen die Leute nur die Standardinstallation. ![]() |
||
AMD Athlon II 4x3,1GHz, 8GB Ram DDR3, ATI Radeon HD 6870, Win 7 64bit |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielleicht... Noch was neues: Nun geht auch goto (Und damit einfache Schleifen):
Code: [AUSKLAPPEN] Goto zeile%
|
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
Geeecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde es nicht mit Zeilen machen, sondern mit Spungmarken sowas wie...
#hier Wenn man ganz oben eine Zeile einfügt, muss man alle Gotos ändern. |
||
.... |
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Meister_Dieb hat Folgendes geschrieben: Wenn man ganz oben eine Zeile einfügt, muss man alle Gotos ändern.
![]() ![]() |
||
aletesBetreff: Terraformer Coredumb |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, ich habe nun auch angefangen eine Scriptengine zu basteln. Sie hat immerhin schon ganze 9(!!) Befehle.
Das sind sie(Die Variablen in den Klammern stehen für bestimmte Werte,'0f' als Wert heißt soviel wie garnix): -mode[rm] = Startet den Script('rm' steht für Realmode) -var[%i]='Variablenname' = Legt eine Integervariable fest(%=Integerzeichen,i=Integer) -var[#f]='Variablenname' = Legt eine Floatvariable fest(#=Floatzeichen,f=Float) -var[$s]='Variablenname' = Legt einen String fest($=Stringzeichen,s=String) -gra[0f]<Höhe,Breite,Fartiefe,Modus> = Erstellt ein Grafikfenster mit den angegebenen Werten. -buffer[bb] = Setzt den Backbuffer(bb=Backbuffer) -buffer[fb] = Setzt den Frontbuffer(fb=Frontbuffer) -flip[0f] = Genau wie 'Flip' -print[0f]<Text> = Schreibt einen Text -wait[k] = Wartet auf Tasteneingabe(k=Key) -wait[m] = Wartet auf Mausdruck(m=mouse) -cls[0f] = Löscht den Bildschirminhalt -endmode[rm] = Beendet den Script(rm=Realmode) Dann gibt es noch '}' um eine Zeile frei zu lassen und ';' für Kommentare Das hier ist ein Hello World-Programm in meiner Scriptsprache: Code: [AUSKLAPPEN] mode[rm] ;Realmode(startet den script)
gra[0f]<640,480,32,1> ;Grafikfenster buffer[bb] ;Backbuffer } } print[0f]<Hello World!> ;Text ausgeben wait[k] ;Warten auf Tasteneingabe endmode[rm] ;Realmode beenden(beendet den script) Jetzt fragt ihr euch wahrscheinlich warum diese komischen Klammern([ ]) da sind. Das kann ich erklären: Meine Scriptsprache baut auf der Spracher der Terraformer aus den X-Büchern auf. Dort werden diese Terraformer auch Xenon gennant. Und da haben alle Befehle diese Klammern wo etwas drin steht. Die Sprache taucht in dem Buch 'X-Farnhams Legende' auf Seite 154 auf, wo diese Sprache als Terrafromercoredump(TCD) bezeichnet wird, deswegen heißt meine Scriptsprache jetzt auch so ![]() |
||
- Zuletzt bearbeitet von aletes am Do, Jul 16, 2009 12:14, insgesamt 2-mal bearbeitet
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Wenn man ganz oben eine Zeile einfügt, muss man alle Gotos ändern.
Klingt logisch... Dann ändere ich das wohl am besten gleich mal! Edit: Goto funktioniert jetzt so: Code: [AUSKLAPPEN] #label ... Goto label Ich werde wahrscheinlich im Laufe des Nachmittags eine lauffähige Version rausbringen. |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
aletes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Nicdel
Verdammt, genauso sieht mein Sprungmarkenzeichen auch aus, jetzt muss ich mir ein anderes suchen ![]() So, ich habe einige Befehle hinzugefügt: -print[ct] = Schreibt die aktuele Zeit auf den Bildschirm(ct=Currenttime) -print[cd] = Schreibt das aktuele Datum auf den Bildschirm(cd=Currentdate) -wait[t]<Zeit> = Wartet solange, bis die Variable Zeit abgelaufen ist(Funktioniert wie 'Delay') -goto[sl0]<Sprungmarke> = Springt zur Sprungmarke Jetzt gibt es auch Grafikbefehle: -color[rgb]<rotwert,grünwert,blauwert> = Ändert die Farbe nach den RGB-Werten -px[0f]<x,y> = Zeichnet einen Pixel an die Position x,y -line[0f]<x1,y1,x2,y2> = Zeichnet eine Linie von x1,y1 zu x2,y2 -rect[0f]<x1,y1,x2,y2,modi> = Zeichnet ein Rechteck von x1,y1 zu x2,y2 mit dem modus 'modi'(0=leer,1=voll) Und: Donwload Hinweis: Beim starten des Interpreters den Namen mit Dateiendung angeben, etwa so: helloworld.txt Es sind 2 Beispiele dabei: Hello World-Programm, welches genügend kommentiert ist und ein Grafiktest, der überhaupt nicht kommentiert ist, viel spaß damit ![]() ys,aletes ![]() |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nachdem ich noch ein bisschen getestet und eine Dokumentation geschrieben hab, gibts nun den
Download (ca. 550 KB) 3 Scripte und ein ReadMe sind beigelegt. Viel Spaß ![]() (Und ich bitte um Rückmeldung) |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
aletes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Och menno, du bist gemein, ich werd jetzt bestimt nicht mehr gewinnen ![]() Nein, mal ehrlich, deine Scriptsprache ist dir wirklich gut gelungen ![]() Bei mir: Rechnen ist nun ebenfalls möglich, und zwar so: Code: [AUSKLAPPEN] print[add]<9,1,8,8>
Das rechnet die Zahlen 9,1,8,8 zusammen, 'add' steht dabei für 'Addition'(Plusrechnen). Dann gibts noch das: -print[sub]<Zahl1,Zahl2...> = Subtraktion -print[mul]<Zahl1,Zahl2...> = Multiplikation -print[div]<Zahl1,Zahl2...> = Division ys, aletes ![]() |
||
![]() |
BlitzMoritz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich bin mir nicht ganz sicher, ob das Script-Projekt, das ich nun entwickelt habe, überhaupt hier 'reinpasst. Naja, vielleicht gefällt's ja einem. Ich werde das Projekt, das noch im Anfangsstadium steckt, auf jeden Fall mit Hingabe fortsetzen, sobald ich wieder etwas Zeit habe.
Dem zip-Ordner wurden Programm-Versionen für Windows und MacOS, Testskripte und eine ausführliche Dokumentation hinzugefügt. Darum spare ich mir jetzt erst 'mal weitere Ausführungen und wünsche Spaß beim Ausprobieren: Download BlitzPoint 1.0 Edit: Hinsichtlich des BCC's werde ich leider keine Zeit mehr haben, etwas am Beitrag zu ändern... |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe es nun geschafft ein One-Man-Pong, in meiner Scriptsprache, zu schreiben:
Code: [AUSKLAPPEN] .data
x1 int 260 x int 395 y int 295 xdir int 1 ydir int 1 .text main: app "One-Man-Pong" gfx 800,600 mainloop: jmp moveball w1: jmp movepl w2: jmp kontroll w3: jmp draw w4: int downkey,ESC cmp kbd,1 jne mainloop end moveball: mov cx,xdir mul cx,2 add x,cx mov cx,ydir mul cx,2 add y,cx cmp 5,x jg mb1 mov x,6 neg xdir mb1: cmp 790,x jl mb2 mov x,789 neg xdir mb2: jmp w1 movepl: int downkey,LEFT cmp kbd,0 jz mp1 sub x1,2 mp1: int downkey,RIGHT cmp kbd,0 jz mp2 add x1,2 mp2: jmp w2 kontroll: cmp 570,y jl kontroll2 cmp 575,y jg kontroll2 cmp x1,x jl kontroll2 mov cx,x1 add cx,80 cmp cx,x jg kontroll2 mov y,569 neg ydir jmp kontroll2 kontroll2: cmp 590,y jl kontroll3 mov x,395 mov y,295 int delay,1000 jmp kontroll3 kontroll3: cmp 0,y jg w3 mov y,1 neg ydir jmp w3 draw: cls org x1,575 rect 80,5 org x,y oval 10,10 flip jmp w4 Ziemlich unübersichtlich der Code, aber solange das parsen und ausführen schnell genug ist, kann ich darüber hinweg sehen. Ist jetzt auch im Downloadpaket: https://www.blitzforum.de/upload/file.php?id=6264 |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
so das ich mich auch mal wieder bemerkbar mache hier meine aktuellsten infos:
24 befehle und 3 interrupts wurden getestet und funktionieren einwandfrei.. es ist möglich 256 variablen und 256 sprungmarken(für schleifen und entscheidungen) zu erstellen und auch zu verwenden.. hier mal der aktuellste download: https://www.blitzforum.de/upload/file.php?id=6266 und eine befehlsübersicht:Code: [AUSKLAPPEN] Befehle:
00000000 interrupt 00000001 addiere register a und b (int) 00000010 subtrahiere register a und b (int) 00000011 multipliziere register a und b (int) 00000100 dividiere register a und b (int) 00000101 kopiere wert nach register 00000110 kopiere variable nach register 00000111 kopiere register nach register 00001000 tausche register 00001001 setze variable auf wert von register 00001010 sprung wenn nicht gleich(register a und b) 00001011 sprung wenn gleich(register a und b) 00001100 sprung wenn register a größer b 00001101 sprung wenn register a kleiner b 00001110 sprungmarke(label) 00001111 variable intereger 00010000 variable float 00010001 variable string 00010010 variable löschen 00010011 addiere register a und b (float) 00010100 addiere register a und b (string) 00010101 subtrahiere register a und b (float) 00010110 - 00010111 multipliziere register a und b (float) 00011000 - 00011001 dividiere register a und b (float) interrupts: 00000000 programm beenden 00000001 auf tastendruck warten 00000010 print inhalt von register D wer lust hat scripte zu machen wäre sehr gut(gibt kekse) viel spaß damit nun ps: verbesserungsvorschläge, kritik etc sind gerne gesehen.. pss: den quellcode gibts erst kurz vor ende des kontests edit: verwendung: einfach die txt datein auf die exe ziehen.. in der ersten zeile befindet sich die zeilenanzahl des scriptes(wird bis ende ncoh geändert). |
||
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
im eingangspost stand was von abgabetermin 31.7. ist der noch aktuell oder wurde auf den 7.8. erweitert wie als möglich angesprochen?
würde dies gerne wissen, da ich in den urlaub fahre und nicht weiß ob ich zum 31. schon wieder im lande bin. |
||
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich erweitere es gerne. allerding smüssen dafür mindestens 2 leute das wollen | ||
Warbseite |
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier haste den 2ten!
Mir isses egal aber das entspannt ein bisschen, und ich kann evtl noch bisschen mehr einbauen. |
||
WIP: Vorx.Engine |
Gehe zu Seite Zurück 1, 2, 3, 4, 5, 6, 7, 8, 9 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group