Wäre es nicht mal wieder an der Zeit...

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
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

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von NicTheQuick »

Hab doch noch was gefunden.
715

Code: Alles auswählen

EnableExplicit
Global d=9,f,b,m=1,c.s,h.s,i.s
Macro U
h=Input()
EndMacro
Macro V
Case
EndMacro
Macro W
EndIf
EndMacro
Macro Z(a)
b=a
While b
m+a
b-((PeekA(@c+m-1)/23)!3-3)/3
Wend
EndMacro
Macro B(z)
Print(z+RSet("Press ENTER to exit",22,#LF$))
U
End
EndMacro
OpenConsole()
Print("Filename (blank to use std in)...?")
U
If h
OpenFile(1,h)
Repeat
i+ReadString(1)
Until Eof(1)
Else
U
While h
i+h
U
Wend
h=i
W
While h
h=Mid(i,m,1)
m+1
If FindString("+-<>.,[]",h)
c+h
b-((Asc(h)/23)!3-3)/3
W
Wend
If b
B("Uneven brackets")
W
Dim k(d)
For m=1 To Len(c)
Select PeekA(@c+m-1)-40
V 3
k(f)+1
V 5
k(f)-1
V 6
Print(Chr(k(f)))
V 4
If c=""
U
W
k(f)=PeekA(@h)
h=Mid(h,2)
V 22
f+1
If f>d
d+d
ReDim k(d)
W
V 20
f-1
If f<0
B("Memory pointer out of range")
W
V 51
Z(k(f)XOr 1)
V 53
If k(f)
Z(-1)
W
EndSelect
Next
B("")
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von STARGÅTE »

709

Code: Alles auswählen

EnableExplicit
Global d=9,f,b,m,c.s,h.s,i.s
Macro U
h=Input()
EndMacro
Macro V
Case
EndMacro
Macro W
EndIf
EndMacro
Macro Z(a)
b=a
While b
m+a
b-((PeekA(@c+m)/23)!3-3)/3
Wend
EndMacro
Macro B(z)
Print(z+RSet("Press ENTER to exit",22,#LF$))
U
End
EndMacro
OpenConsole()
Print("Filename (blank to use std in)...?")
U
If h
OpenFile(1,h)
Repeat
i+ReadString(1)
Until Eof(1)
Else
U
While h
i+h
U
Wend
h=i
W
While h
m+1
h=Mid(i,m,1)
If FindString("+-<>.,[]",h)
c+h
b-((Asc(h)/23)!3-3)/3
W
Wend
If b
B("Uneven brackets")
W
Dim k(d)
For m=0 To Len(c)
Select PeekA(@c+m)-40
V 3
k(f)+1
V 5
k(f)-1
V 6
Print(Chr(k(f)))
V 4
If c=""
U
W
k(f)=PeekA(@h)
h=Mid(h,2)
V 22
f+1
If f>d
d+d
ReDim k(d)
W
V 20
f-1
If f<0
B("Memory pointer out of range")
W
V 51
Z(k(f)XOr 1)
V 53
If k(f)
Z(-1)
W
EndSelect
Next
B("")
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
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

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von NicTheQuick »

///Edit: Kleiner Bugfix, der schon seit mehreren Versionen besteht.
///Edit: Und noch einer.
///Edit: Noch ein paar Zeichen gespaart.
699

Code: Alles auswählen

EnableExplicit
Global d=9,f,b,m,n,c.s,h.s,i.s
Macro U
h=Input()
EndMacro
Macro W
EndIf
EndMacro
Macro Z(a)
b=a
While b
m+a
b-((PeekA(@c+m)/23)!3-3)/3
Wend
EndMacro
Macro B(z)
Print(z+RSet("Press ENTER to exit",22,#LF$))
U
End
EndMacro
OpenConsole()
Print("Filename (blank to use std in)...?")
U
If h
OpenFile(1,h)
Repeat
i+ReadString(1)
Until Eof(1)
Else
U
While h
i+h
U
Wend
h=i
W
While h
m+1
h=Mid(i,m,1)
If FindString("+-<>.,[]",h)
c+h
b-((Asc(h)/23)!3-3)/3
W
Wend
If b
B("Uneven brackets")
W
Dim k(d)
For m=0 To Len(c)
n=PeekA(@c+m)-44
Select n
Case -1,1
k(f)-n
Case 2
Print(Chr(k(f)))
Case 0
If h=""
U
W
k(f)=Asc(h)
h=Mid(h,2)
Case 16,18
f+n-17
If f<0
B("Memory pointer out of range")
W
d+d*(f/d)
ReDim k(d)
Case 47,49
Z((k(f)XOr n/49)!1*(48-n))
EndSelect
Next
B("")
Mittlerweile sieht PB auch schon aus wie Brainfuck.
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von 7x7 »

-Bug gefixt (Dateiinput)
...und natürlich wieder extreeeeem gekürzt :mrgreen:
693

Code: Alles auswählen

EnableExplicit
Global d=9,f,b,m,n,c.s,h.s,i.s
Macro U
h=Input()
EndMacro
Macro W
EndIf
EndMacro
Macro Z(a)
b=a
While b
m+a
b-((PeekA(@c+m)/23)!3-3)/3
Wend
EndMacro
Macro B(z)
Print(z+RSet("Press ENTER to exit",22,#LF$))
U
End
EndMacro
OpenConsole()
Print("Filename (blank to use std in)...?")
U
If h
OpenFile(1,h)
Repeat
i+ReadString(1)
Until Eof(1)
Else
U
While h
i+h
U
Wend
W
h=i
While h
m+1
h=Mid(i,m,1)
If FindString("+-<>.,[]",h)
c+h
b-((Asc(h)/23)!3-3)/3
W
Wend
If b
B("Uneven brackets")
W
Dim k(d)
For m=0 To Len(c)
n=PeekA(@c+m)-44
Select n
Case -1,1
k(f)-n
Case 2
Print(Chr(k(f)))
Case 0
If h=""
U
W
k(f)=Asc(h)
h=Mid(h,2)
Case 16,18
f+n-17
If f<0
B("Memory pointer out of range")
W
d+9
ReDim k(d)
Case 47,49
Z((k(f)XOr n/49)!1*(48-n))
EndSelect
Next
B("")
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Sirius-2337
Beiträge: 71
Registriert: 29.05.2010 20:55

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von Sirius-2337 »

689
Edit: 688
Edit2: 686

Code: Alles auswählen

EnableExplicit
Global a,d,f,j,m,n,c.s,h.s,i.s
Macro U
h=Input()
EndMacro
Macro W
EndIf
EndMacro
Macro Z
j=a
While j
m+a
j-((PeekA(@c+m)/23)!3-3)/3
Wend
EndMacro
Macro B
Print(i+RSet("Press ENTER to exit",22,#LF$))
U
End
EndMacro
OpenConsole()
Print("Filename (blank to use std in)...?")
U
If h
OpenFile(1,h)
Repeat
i+ReadString(1)
Until Eof(1)
Else
U
While h
i+h
U
Wend
W
h=i
While h
m+1
h=Mid(i,m,1)
If FindString("+-<>.,[]",h)
c+h
j-((Asc(h)/23)!3-3)/3
W
Wend
If j
i="Uneven brackets"
B
W
Dim k(d)
For m=0 To Len(c)
n=PeekA(@c+m)-44
i=""
Select n
Case -1,1
k(f)-n
Case 2
Print(Chr(k(f)))
Case 0
If h=i
U
W
k(f)=Asc(h)
h=Mid(h,2)
Case 16,18
f+n-17
If f<0
i="Memory pointer out of range"
B
W
d+9
ReDim k(d)
Case 47,49
a=(k(f)XOr n/49)!1*(48-n)
Z
EndSelect
Next
B
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von 7x7 »

670 :lurk:

Code: Alles auswählen

EnableExplicit
Global a,d,f,j,m,n,c.s,h.s,i.s
Macro U
h=Input()
EndMacro
Macro W
EndIf
EndMacro
Macro B
Print(i+RSet("Press ENTER to exit",22,#LF$))
U
End
EndMacro
OpenConsole()
Print("Filename (blank to use std in)...?")
U
If h
OpenFile(1,h)
Repeat
i+ReadString(1)
Until Eof(1)
Else
U
While h
i+h
U
Wend
W
h=i
While h
m+1
h=Mid(i,m,1)
If FindString("+-<>.,[]",h)
c+h
j-((Asc(h)/23)!3-3)/3
W
Wend
If j
i="Uneven brackets"
B
W
Dim k(d)
For m=0 To Len(c)
n=PeekA(@c+m)-44
i=""
Select n
Case -1,1
k(f)-n
Case 2
Print(Chr(k(f)))
Case 0
If h=i
U
W
k(f)=Asc(h)
h=Mid(h,2)
Case 16,18
f+n-17
If f<0
i="Memory pointer out of range"
B
W
d+9
ReDim k(d)
Case 47,49
a=(k(f)XOr n/49)!1*(48-n)
j=a
While j
m+a
j-((PeekA(@c+m)/23)!3-3)/3
Wend
EndSelect
Next
B
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von 7x7 »

mirca hat geschrieben:Was muss ich den da in der Konsole eingeben?
Deswegen wäre mir persönlich ja ein kleines Spielchen lieber gewesen.: einfach "Run" und losgehts. Entweder es läuft oder eben nicht.

Bei Brainfuck musst du das Programm selbst testen mit Testeingaben über die Console oder über ein Fileread mit Brainfuck-Code.

Damit mehr Leute den Code verstehen/testen und mitmachen können, hier eine kleine Hilfe.
Ich persönlich setze im Programmcode (z.B.in meinem obigen 670er-Code) nach Zeile 28 den Code:

Code: Alles auswählen

i="[-]>[-]<>++++++++[<++++++++++>-]<.>++++++[<++++++>-]<+.---.-------------.>+++++[<------>-]<.>+++++[<++++++++>-]<."
i+"---.------.>+++++++[<-------->-]<-.>++++[<++++++++>-]<.>++++[<+++++>-]<.>+++[<++++++>-]<.+.---------------."
i+"+++++++++++++.>+++++++++[<--------->-]<-.>++++[<++++++>-]<-.>++++++++[<++++++++>-]<+.>++++++++[<-------->-]<-.>++++[<------>-]<+."
Dann starten und 2xEnter drücken. Wenn dann ein Klartext in der Console erscheint, hast du schon mal gute Karten :mrgreen:
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Sirius-2337
Beiträge: 71
Registriert: 29.05.2010 20:55

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von Sirius-2337 »

663

Code: Alles auswählen

EnableExplicit
Global a,d,f,j,m,n,c.s,h.s,i.s
Macro U
h=Input()
EndMacro
Macro W
EndIf
EndMacro
OpenConsole()
Print("Filename (blank to use std in)...?")
U
If h
OpenFile(1,h)
Repeat
i+ReadString(1)
Until Eof(1)
Else
U
While h
i+h
U
Wend
W
h=i
While h
m+1
h=Mid(i,m,1)
If FindString("+-<>.,[]",h)
c+h
j-((Asc(h)/23)!3-3)/3
W
Wend
If j
i="Uneven brackets"
Goto z
W
Dim k(d)
For m=0 To Len(c)
n=PeekA(@c+m)-44
i=""
Select n
Case -1,1
k(f)-n
Case 2
Print(Chr(k(f)))
Case 0
If h=i
U
W
k(f)=Asc(h)
h=Mid(h,2)
Case 16,18
f+n-17
If f<0
i="Memory pointer out of range"
Goto z
W
d+9
ReDim k(d)
Case 47,49
a=(k(f)XOr n/49)!1*(48-n)
j=a
While j
m+a
j-((PeekA(@c+m)/23)!3-3)/3
Wend
EndSelect
Next
z:
Print(i+RSet("Press ENTER to exit",22,#LF$))
U
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von STARGÅTE »

Es ist schon interessant zu verfolgen,
wie zuerst sehr viel zu Macros gemacht wurde (was ja auch zum dem jeweiligen zeitpunkt effektiv war),
aber nun mehr auf die effektivität des Code-Flusses geachtet wird, sodass Macros wieder uneffektiv sind.

Ich wette das EndIf-Macro wird auch noch wegfallen, sobald nur noch 4 EndIfs nötig sind ^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: Wäre es nicht mal wieder an der Zeit...

Beitrag von 7x7 »

Hey Sirius-2337, DER war nicht schlecht. Das musst du aber zu Ende denken... :D
661

Code: Alles auswählen

EnableExplicit
Global a,d,f,j,m,n,c.s,h.s,i.s
Macro U
h=Input()
EndMacro
Macro W
EndIf
EndMacro
OpenConsole()
Print("Filename (blank to use std in)...?")
U
If h
OpenFile(1,h)
Repeat
i+ReadString(1)
Until Eof(1)
Else
U
While h
i+h
U
Wend
W
h=i
While h
m+1
h=Mid(i,m,1)
If FindString("+-<>.,[]",h)
c+h
j-((Asc(h)/23)!3-3)/3
W
Wend
i="Uneven brackets"
If j=0	
Dim k(d)
For m=0 To Len(c)
n=PeekA(@c+m)-44
i=""
Select n
Case -1,1
k(f)-n
Case 2
Print(Chr(k(f)))
Case 0
If h=i
U
W
k(f)=Asc(h)
h=Mid(h,2)
Case 16,18
f+n-17	
If f<0
i="Memory pointer out of range"
Goto z
W
d+9
ReDim k(d)
Case 47,49
a=(k(f)XOr n/49)!1*(48-n)
j=a
While j
m+a
j-((PeekA(@c+m)/23)!3-3)/3
Wend
EndSelect
Next
w
z:
Print(i+RSet("Press ENTER to exit",22,#LF$))
U
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Antworten