Brainfuck 2D
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
> Das würde sogar mich mal interessieren.
Eigene Sprache oder BF2D-Optimierung?
Eigene Sprache ist auch eine gute Idee, doch braucht man dafür wieder viel mehr Wissen und Interesse an der Sache. Soviele Mitglieder haben wir hier auch nicht und nur wenige, die sich eigene Sprachen ausdenken. Mal sehn, vielleicht danach.
Ich lade das englische Forum dann auch wieder ein, wird bestimmt lustig
Eigene Sprache oder BF2D-Optimierung?
Eigene Sprache ist auch eine gute Idee, doch braucht man dafür wieder viel mehr Wissen und Interesse an der Sache. Soviele Mitglieder haben wir hier auch nicht und nur wenige, die sich eigene Sprachen ausdenken. Mal sehn, vielleicht danach.
Ich lade das englische Forum dann auch wieder ein, wird bestimmt lustig

Build a man a fire and he's warm for a day. Set a man on fire and he's warm for the rest of his life
-
- Beiträge: 556
- Registriert: 04.09.2004 22:23
- Kontaktdaten:
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Hier ist übrigens noch mein kleiner BrainFuck-Interpreter. Hab ich eben mal auf die Schnelle gecodet. Er benutzt keine Arrays, sondern LinkedLists, die man dafür wunderbar verwenden kann. Somit sind auch Pointer kleiner als Null und über mehreren tausend möglich bis eben der Speicher voll ist. Außerdem können Schleifen soweit verschachtelt sein wie sie wollen. Es klappt immer. Zumindest bis der Speicher voll ist.
Hier gibt es ein paar Codes zu finden.
Aber hier ist erstmal der Code:Was?? Ihr findet den Code unübersichtlich?? Naja, ich wollte eben etwas Platz sparen. 
Primzahl-Test gefälligst?

Hier gibt es ein paar Codes zu finden.
Aber hier ist erstmal der Code:
Code: Alles auswählen
NewList BF_Buffer.l()
NewList BF_Loop.l()
Procedure.l BF_Compile(*Text.BYTE)
Protected a.l, b.s
OpenConsole()
AddElement(BF_Buffer())
AddElement(BF_Loop())
While *Text\b
Select *Text\b & $FF
Case '+' : If BF_Buffer() < 255 : BF_Buffer() + 1 : EndIf
Case '-' : If BF_Buffer() > 0 : BF_Buffer() - 1 : EndIf
Case '['
AddElement(BF_Loop()) : BF_Loop() = *Text
If BF_Buffer() = 0 : a = 0 : Repeat
Select *Text\b : Case 0 : Break 2 : Case '[' : a + 1 : Case ']' : a - 1 : If a = 0 : Break : EndIf : EndSelect
*Text + 1 : ForEver : DeleteElement(BF_Loop())
EndIf
Case ']' : If BF_Buffer() = 0 : DeleteElement(BF_Loop()) : Else : *Text = BF_Loop() : EndIf
Case '<' : If PreviousElement(BF_Buffer()) = 0 : InsertElement(BF_Buffer()) : EndIf
Case '>' : If NextElement(BF_Buffer()) = 0 : AddElement(BF_Buffer()) : EndIf
Case '.' : Print(Chr(BF_Buffer()))
Case ',' : Repeat : b = Left(Inkey(), 1) : Delay(10) : Until b <> "" : a = Asc(b) : If a = 13 : a = 10 : PrintN("") : Else : Print(b) : EndIf : BF_Buffer() = a
EndSelect
*Text + 1
Wend
PrintN("")
Print("Interpreter Ende - Druecken sie eine beliebige Taste zum Fortsetzen...")
While Inkey() = "" : Delay(10) : Wend
CloseConsole()
ProcedureReturn #True
EndProcedure
BF.s = GetClipboardText()
BF_Compile(@BF)

Primzahl-Test gefälligst?
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Such mal im alten Forum/Archiv nach "Brainfuck", da ist einiges drin.NicTheQuick hat geschrieben:Wo gibt es denn noch andere in PureBasic geschriebene Brainfuck-Interpreter?
Meiner ist da: Danilos kleiner Brainfuck-Interpreter

cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck