Seite 9 von 16

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

Verfasst: 17.04.2012 00:44
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("")

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

Verfasst: 17.04.2012 01:33
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("")

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

Verfasst: 17.04.2012 02:52
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.

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

Verfasst: 17.04.2012 09:44
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("")

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

Verfasst: 17.04.2012 09:59
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

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

Verfasst: 17.04.2012 11:46
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

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

Verfasst: 17.04.2012 14:13
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:

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

Verfasst: 17.04.2012 15:03
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

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

Verfasst: 17.04.2012 15:16
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 ^^

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

Verfasst: 17.04.2012 15:43
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