BCC #28 - Scriptsprache

Übersicht Sonstiges Projekte

Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9  Weiter

Neue Antwort erstellen

 

aletes

BeitragFr, Jul 17, 2009 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
hier der dritte, ich bin am 31. auch wahrscheinlich nicht da

Xaymar

ehemals "Cgamer"

BeitragFr, Jul 17, 2009 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
OK es sind schon 4, einer hat sich per pm gemeldet:)

[Erweitert auf den 7.8]
Warbseite

coolo

BeitragFr, Jul 17, 2009 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich fände es btw. auch gut wenns verlängert wird.

Ich melde auch noch Erfolge (auch wenn der Source bei 42.5kb liegt Sad... ). Die Dynamisch Assoziativen Arrays sind nun soweit Bugfrei und funktionieren wie geschmiert. Das heißt, man kann jetzt jede Art von Spiel Programmieren welche man sich vorstellen kann!

Folgende 2 Codesamples werden richtig und mit 60fps (mit Timer) gerendert:
Code: [AUSKLAPPEN]
graphics(640,480,0,30)

local PlayerX:int=320

local shotlist:int[]
local Count:int

local Shotwait:int=1000


repeat
   cls()
   ShotWait=ShotWait+1
   //Player Sachen
   Drawrect(PlayerX-5,430,10,10)
   
   if (KeyDown(KEY_LEFT))
      PlayerX=PlayerX-4
   elseif (KeyDown(KEY_RIGHT))
      PlayerX=PlayerX+4
   endif
   
   if (keydown(key_space) and shotwait>10)
      Count=Count+1
      ShotWait=0
      ShotList[Count][y]=430
      ShotList[Count][x]=PlayerX-5
   endif
   
   //Schüsse Updaten
   local i:string
   Steps=0
   
   foreach ("ShotList","i")
      
      drawoval(ShotList[i][x]+5,shotlist[i][y],5,5)
      shotlist[i][y]=shotlist[i][y]-4
      if (shotlist[i][y]<0)
         ShotList[i]=null
      endif
   next
   

   DrawText(getfps(),10,20)
   
   flip(1)
until (keydown(Key_escape))

Code: [AUSKLAPPEN]
Local Array:Int[] // Eckige Klammern bedeuten, dass es ein
Array ist
Array[1]=100 //Setze den Wert 100 mit dem Index 1
Array["MeinArrayIndex"]=1000 //Auch Strings gehen als
bezeichner
Array[-10]=-100 //Sowie Negative
'//Mehrdimensionale Array
Local i:Int=10
Array[i][x]=10 //Die Gänsefüßchen können auch weggelassen
werden (Dann ists nicht Case Senistive und auch Leerzeichen
sind verboten)
Array[i][y]=100 //Auch mehrere sind erlaubt
Array[i]=-900 //Auch dieser Index kann angenommen werden
Local index:String //Muss String sein, da die Indexe auch
Strings sein können
ForEach ("Array","index")
Print (Array[index])
Next
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

Nicdel

BeitragFr, Jul 17, 2009 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Die einzige Chance ist der zu große Code Very Happy
Nicht schlecht coolo! Wink
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

ComNik

BeitragFr, Jul 17, 2009 19:05
Antworten mit Zitat
Benutzer-Profile anzeigen
So von mir auch mal was neues:
Mein Hauptbeweggrund mitzumachen war ja das testen, wie ich mit dem bau eines eigenen Compilers etc... klarkomm. Hab mich heute mal wieder an meinen beitrag gesetzt und ohne weitere Probleme den Lexer fertig gestellt. Smile

Das freut mich natürlich, deswegen setze ich mich morgen hochmotiviert an einen Parser. Dieser wird erstmal (hoffentlich) lauffähigen BlitzMax Source erzeugen. Und sobald das klappt mach ich mich an die erzeugung von Assembler Code.

Das Sprachkonzept wurde zum Xten mal umgestellt ich will es jetzt noch nicht erläutern erst wenn ich sehe, wie dass so mit dem parser klappt.

Also dann...
ComNik
WIP: Vorx.Engine

Nicdel

BeitragSa, Jul 18, 2009 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Die nächste Version ist fertig:

Arrow ca. 20x schneller
Arrow KeyHit und KeyDown
Arrow One-Man-Pong beiliegend
Arrow Source noch unübersichtlicher (ca. 20kb)

Download
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

Thunder

BeitragSa, Jul 18, 2009 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe es nun endlich geschafft Funktionen zu implementieren, natürlich im ASM-Style. Leider musste ich dafür eine Maximum für verschachtelte Funktionen setzen, aber wer verschachtelt 200 Funktionen?

Hier ein kleines Beispiel:
Code: [AUSKLAPPEN]
 .text
main:
   int input,"Ihr Name: "
   push cmd
   call AnfangSetzen
   int delay,2000
   end

AnfangSetzen:
   mov cmd,"Ihr Name ist also "
   call AddName
ret

AddName:
   pop dx
   add cmd,dx
   call ausgeben
ret

ausgeben:
   int print
ret
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
 

BIG BUG

BeitragSa, Jul 18, 2009 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
aber wer verschachtelt 200 Funktionen?

Wenn man Rekursion benutzt ist das nicht besonders viel Smile
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

Thunder

BeitragSa, Jul 18, 2009 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber du müsstest sie auf diese Weise verschachteln:

Code: [AUSKLAPPEN]
f1:
   call f2
ret

f2:
   call f3
ret

f3:
   call f4
ret

...


f199:
   call f200
ret

f200:
   call f201 ' an der Stelle gäbe es dann eine MAV
ret

f201:
ret   


Ich weiß nicht, ob das viel ist, unter Anderem weil ich sowas nie machen würde, aber wenn du es mir empfiehlst setze ich die Grenze etwas höher.



Edit:

Neuere Version: Es wurden mehrere Bugs behoben, geschätzte 17. Version: 0.72. Durch diese "enorme" Anzahl sah ich mich gezwungen, die neue Version hochzuladen.

Neuer Link: https://www.blitzforum.de/upload/file.php?id=6285 (~43 KB)

Ich habe ein neues Script dazu gegeben und die erste Version der Hilfedatei mit einer Dokumentation, einer Befehlsreferenz und einer Einführung in die thasm-Programmierung.
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

Eingeproggt

BeitragSo, Jul 19, 2009 23:08
Antworten mit Zitat
Benutzer-Profile anzeigen
So, da bin ich wieder!

Ich hab da ne absolut massen-untaugliche Idee die möglicherweise (so wie mein vorheriger Beitrag) wieder nicht ganz an eine Skriptsprache rankommt aber die Idee darf ich euch nicht vorenthalten... Ihr wollt mich doch schließlich alle liebend gern mal auslachen? Twisted Evil

Also hier mal ne (codetechnisch etwas unsaubere) Version inklusive dem "Hello World Skript" (An dem ich jetzt runde 2 Stunden gesessen bin... Wohl fast so lang wie ich für den ganzen Parser gebraucht hab Rolling Eyes )

https://www.blitzforum.de/upload/file.php?id=6302

Achja, verstehen müsst ihr es nicht...
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Tennisball

BeitragMo, Jul 20, 2009 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
So schlecht ist es gar nicht, Eingeproggt. Recht interessant.
Vor allem erstaunt mich der kleine Code (also der des Parsers).

mpmxyz

BeitragMo, Jul 20, 2009 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde den Code von Eingeproggt auch interessant.
Ich habe ihn nämlich auch verstanden. Cool

Als Erstes fängt man an dem grünen Punkt an und folgt der schwarzen Linie mit den bunten Punkten nach rechts.
Die Linie entspricht Zahlen, welche vom "größten" zum "kleinsten" Bit definiert werden.
Ein roter Punkt kennzeichnet eine neue Zahl.
Ein blauer Punkt kennzeichnet dem Interpreter eine Kreuzung.
Ein Knick nach links ist 0 ein Knick nach rechts ist 1.

Den "Code" kann man in Abschnitte unterteilen.
Die erste Zahl jedes Abschnittes gibt die Länge des darauffolgenden Strings an.
Danach kommen dem entsprechend viele Zahlen mit dem ASCII-Code des jeweiligen Zeichens.
Dieser String wird dann vom Programm mit "Print" ausgegeben.
Wenn nach einem String keine Linie mehr weitergeht, dann fängt das Programm von vorne an.
Da ist nämlich noch ein "Repeat...Forever". Exclamation

So, das war meine Analyse. Smile

Dieses Konzept kann noch erweitert werden.
So könnte man auch If-Abzweigungen als eine echte Abzweigung definieren.

mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Eingeproggt

BeitragMo, Jul 20, 2009 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Wenn nach einem String keine Linie mehr weitergeht, dann fängt das Programm von vorne an.
Da ist nämlich noch ein "Repeat...Forever".


Hm? Ne, das sollte eigentlich dann aufhören aber ich hab heute am Nachmittag versucht das Konzept zu erweitern (um Variablen) und jetzt im Moment geht gar nix... Und ich muss sagen dass ich iwie auch wenig Lust darauf hab weil das Erstellen von Beispiel"codes" extrem mühsam ist. Aber wer weiß, wenn mir morgen wieder so fad is wie heute arbeite ich vlt tatsächlich weiter.

Ansonsten hast du übrigens 100% Recht mit deiner Analyse Smile

Zitat:
Vor allem erstaunt mich der kleine Code (also der des Parsers).


Naja, das ist soweit keine Kunst, der kann ja auch nur das was mpmxyz beschrieben hat: Einen String ausgeben.

Aber Danke für die Kommentare! Hab ich echt nicht erwartet Smile

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

mpmxyz

BeitragMo, Jul 20, 2009 23:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe eben auch gemerkt, dass ich da etwas zu sehr überflogen hatte...
Diese Schleife existiert aber trotzdem und sorgt bei mir dafür, dass ich nichts sehe, da meine Computer durch diese stark ausgelastet ist.
Das könntest du noch ausbessern und wenn du Lust hast, das zu erweitern, dann wäre das super. Smile
mfG
mpmxyz
P.S.: Ich hatte Langeweile und habe inzwischen deinen "Code" auf 240 Pixel verkleinert. Smile
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

coolo

BeitragMi, Jul 22, 2009 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
So Leute, ihr glaubt es kaum, aber ich habe es geschafft SimpleScriptMax auf die Codegrenze runter zu drücken!
Das heißt hiermit stelle ich vor:
Simple Script Max

SimpleScriptMax ist eine einfache Scriptsprache die leicht zu modifizieren ist (Die nicht gekürzte Fassung) und viele Features bietet! Weitere Infos liegen in der PDF dabei. Inklusive einem einfachem Tutorial welche die Einzelheiten von SimpleScriptMax verdeutlicht.

Features:
• Variablen (Int, Float, Byte, String, Long, Short, Double)
• Schleifen (Repeat – Until, repeat – Forever, while – wend, For – Next) ,
kombinierbar
• If Abfragen (If, Else, Elseif)
• Local/Global (Erweitertes Scoping, jede If Abfrage/Schleife eröffnet einen neuen
Scope)
• Große Funktionsvielfalt
• Multidimensionale Arrays
• Assoziative Arrays (Mischen von Wörter und Zahlen im ArrayIndes)
• ForEach Support für Arrays
• uvm.

Download für MacOS X, Windows und Linux: http://coolo.kilu.de/files/Coo..._Final.zip

Was gibts sonst noch zu sagen? Ahja dies ist sicherlich die letzte Version. Auf Anfrage gibts auch die ungekürzte Fassung welche man leicht in bestehende Projekte einbinden kann.

Und außerdem ich werde den ganzen August lang (bis am 24/25 August) auf Urlaub sein, wenn ich bis dato nicht aktiv bin und ich vllt. gewonnen habe (Man weiß ja nie), verzichte ich auf mein Recht den nächsten BCC veranzustalten und der mit den 2. meisten Stimmen wird den BCC veranstalten dürfen.
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

DAK

BeitragDo, Jul 23, 2009 0:04
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm.. @coolo: ich hab noch ne frage: lohnt sichs für mich, dass ich meine scriptsprache fertig schreib? ich glaub, ich überlass dir lieber kampflos das feld...
Gewinner der 6. und der 68. BlitzCodeCompo

Thunder

BeitragDo, Jul 23, 2009 10:43
Antworten mit Zitat
Benutzer-Profile anzeigen
@coolo: Wie schnell ist dein Pong/Spaceshooter bei dir? Bei mir ist es nämlich extrem langsam(1,666 GHz, 1024 MB RAM - Netbook).

Edit: Mir wird schon schwindlig wenn ich deine Featurelist mit meiner vergleiche.
Zitat:
• Variablen (Int, Single[=Float], String)
• bedingte und unbedingte Gotos(jmp,...)^^
• If Abfragen (cmp)
• nur globale Variablen
• möglichst wenig Befehle
• maximal eindimensionale Arrays
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
  • Zuletzt bearbeitet von Thunder am Do, Jul 23, 2009 17:50, insgesamt 2-mal bearbeitet

Nicdel

BeitragDo, Jul 23, 2009 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Keine Chance mehr... Very Happy
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

Eingeproggt

BeitragDo, Jul 23, 2009 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
ich glaub, ich überlass dir lieber kampflos das feld...


Zitat:
Keine Chance mehr...


Ja das dachte ich auch, aber dann las ich das:

Zitat:
wenn ich bis dato nicht aktiv bin und ich vllt. gewonnen habe (Man weiß ja nie), verzichte ich auf mein Recht den nächsten BCC veranzustalten und der mit den 2. meisten Stimmen wird den BCC veranstalten dürfen.


Trotzdem kotzt mich mein Konzept selbst an, auch wenn es immerhin 2 Leuten hier gefiel... Aber es is so mühsam dass ich keine Lust mehr auf mein eigenes Skript habe... 2 unfertige und ungültige Beiträge hab ich jedenfalls gemacht...

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

Nicdel

BeitragDo, Jul 23, 2009 19:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast Recht, es ist eine Hoffnung. Und ich fand deine erste Idee nicht schlecht, wenn du noch die Ratschläge von CGamer befolgst, wäre es noch besser.
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

Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9  Weiter

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group