Seite 4 von 16

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

Verfasst: 15.04.2012 21:02
von ts-soft
rolaf hat geschrieben:Einfach den "Rüssel" auf den Tisch legen, wer den kürzesten hat, hat gewonnen. :wink:
Das sagst Du ja nur, weil Du dann wahrscheinlich gewonnen hast :bounce:

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

Verfasst: 15.04.2012 21:10
von rolaf
ts-soft hat geschrieben:Das sagst Du ja nur, weil Du dann wahrscheinlich gewonnen hast :bounce:
:allright: :lol:

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

Verfasst: 16.04.2012 10:04
von ts-soft
Wenn bis 20:42 kein kürzerer Beitrag kommt, habe ich wohl gewonnen :mrgreen:

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

Verfasst: 16.04.2012 10:48
von The Shark

Code: Alles auswählen

EnableExplicit
Global b,i,m=1000,C$="+-<>.,[]",p,f.s,l.s,s.s,c.s,o.s,w.s
Macro T
Procedure
EndMacro
Macro E
EndProcedure
EndMacro
Macro X
Case
EndMacro
Macro Y
EndIf
EndMacro
T U()
Print(#CRLF$+#CRLF$+"Press ENTER to exit")
Input()
CloseConsole()
End
E
T Z(m$)
PrintN(m$)
U()
E
Macro a(d=1)
b=d
Repeat
i+d
If Mid(o,i)="]"
b-1
ElseIf Mid(o,i)="["
b+1
Y
Until b=0
EndMacro
If OpenConsole()=0
MessageRequester("Error","Unable to open console.")
End
Y
Print("Filename (blank to use std in)...? ")
f=Input()
If f=""
Repeat
l=Input()
s+l
Until l=""
Else
OpenFile(1,f)
Repeat
l=ReadString(1)
s+l
Until Eof(1)
CloseFile(1)
Y
For i=1 To Len(s)
c=Mid(s,i)
If FindString(C$,c)
o+c
Select c
X "["
b+1
X "]"
b-1
EndSelect
Y
Next
If b
Z("Uneven brackets")
Y
Dim _.b(m)
For i=1 To Len(o)
Select Mid(o,i)
X "+"
_(p)+1
X "-"
_(p)-1
X "."
Print(Chr(_(p)))
X ","
If w=""
w=Input()
Y
_(p)=Asc(Left(w,1))
w=Mid(w,2)
X ">"
p+1
If p>m
m+1000
ReDim _(m)
Y
X "<"
p-1
If p<0
Z("Memory pointer out of range")
Y
X "["
If _(p)=0
a()
Y
X "]"
If _(p)<>0
a(-1)
Y
EndSelect
Next
U()
944

--------------------
Kann mir jemand sagen, was daran falsch ist:

Code: Alles auswählen

Macro m(a,b,c)
Macro a
b
c#ndMacro
EndMacro

m(e,EndProcedure,e)

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

Verfasst: 16.04.2012 11:01
von 7x7

Code: Alles auswählen

EnableExplicit
Global b,i,m=1000,C$="+-<>.,[]",p,f.s,l.s,s.s,c.s,o.s,w.s
Macro X
Case
EndMacro
Macro V
EndIf
EndMacro
Macro T
Procedure
EndMacro
Macro E
EndProcedure
EndMacro
T U()
Print(#CRLF$+#CRLF$+"Press ENTER to exit")
Input()
CloseConsole()
End
E
T Z(m$)
PrintN(m$)
U()
E
Macro a(d=1)
b=d
Repeat
i+d
If Mid(o,i)="]"
b-1
ElseIf Mid(o,i)="["
b+1
V
Until b=0
EndMacro
If OpenConsole()=0
MessageRequester("Error","Unable to open console.")
End
V
Print("Filename (blank to use std in)...? ")
f=Input()
If f=""
Repeat
l=Input()
s+l
Until l=""
Else
OpenFile(1,f)
Repeat
l=ReadString(1)
s+l
Until Eof(1)
CloseFile(1)
V
For i=1 To Len(s)
c=Mid(s,i)
If FindString(C$,c)
o+c
Select c
X "["
b+1
X "]"
b-1
EndSelect
V
Next
If b
Z("Uneven brackets")
V
Dim _.b(m)
For i=1 To Len(o)
Select Mid(o,i)
X "+"
_(p)+1
X"-"
_(p)-1
X "."
Print(Chr(_(p)))
X ","
If w=""
w=Input()
V
_(p)=Asc(Left(w,1))
w=Mid(w,2)
X ">"
p+1
If p>m
m+1000
ReDim _(m)
V
X "<"
p-1
If p<0
Z("Memory pointer out of range")
V
X "["
If _(p)=0
a()
V
X "]"
If _(p)<>0
a(-1)
V
EndSelect
Next
U()
@The Shark: Hatte die gleiche Idee wie du...bei mir sind's aber nur 943

Wie soll denn der Code überhaupt auf Lauffähigkeit überprüft werden? Habe keine Ahnung von BrainFuck-Programmierung (überhaupt halte ich diesen Code nicht für besonders PureGolf-geeignet)

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

Verfasst: 16.04.2012 11:50
von ts-soft

Code: Alles auswählen

EnableExplicit
Global b,i,m=999,C$="+-<>.,[]",p,f.s,l.s,s.s,c.s,o.s,w.s
Macro X
Case
EndMacro
Macro V
EndIf
EndMacro
Macro T
Procedure
EndMacro
Macro E
EndProcedure
EndMacro
T U()
Print(#CRLF$+#CRLF$+"Press ENTER to exit")
Input()
CloseConsole()
End
E
T Z(m$)
PrintN(m$)
U()
E
Macro a(d=1)
b=d
Repeat
i+d
If Mid(o,i)="]"
b-1
ElseIf Mid(o,i)="["
b+1
V
Until b=0
EndMacro
If OpenConsole()=0
MessageRequester("Error","Unable to open console.")
End
V
Print("Filename (blank to use std in)...? ")
f=Input()
If f=""
Repeat
l=Input()
s+l
Until l=""
Else
OpenFile(1,f)
Repeat
l=ReadString(1)
s+l
Until Eof(1)
CloseFile(1)
V
For i=1 To Len(s)
c=Mid(s,i)
If FindString(C$,c)
o+c
Select c
X "["
b+1
X "]"
b-1
EndSelect
V
Next
If b
Z("Uneven brackets")
V
Dim _.b(m)
For i=1 To Len(o)
Select Mid(o,i)
X "+"
_(p)+1
X"-"
_(p)-1
X "."
Print(Chr(_(p)))
X ","
If w=""
w=Input()
V
_(p)=Asc(Left(w,1))
w=Mid(w,2)
X ">"
p+1
If p>m
m+999
ReDim _(m)
V
X "<"
p-1
If p<0
Z("Memory pointer out of range")
V
X "["
If _(p)=0
a()
V
X "]"
If _(p)<>0
a(-1)
V
EndSelect
Next
U() 
941 :mrgreen:

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

Verfasst: 16.04.2012 12:05
von NicTheQuick
Also schon ts-softs erster Code funktioniert bei mir nicht. Bei Eingabe von folgendem Code kommt keine Ausgabe:

Code: Alles auswählen

++++++++[>++++[>++>+++>+++>+<<<<-]>+>->+>>+[<]<-]>>.>
>---.+++++++..+++.>.<<-.>.+++.------.--------.>+.>++.+++.
Normalerweise sollte das so aussehen:

Code: Alles auswählen

Press ENTER to exitFilename (blank to use std in)...? 
++++++++[>++++[>++>+++>+++>+<<<<-]>+>->+>>+[<]<-]>>.>
>---.+++++++..+++.>.<<-.>.+++.------.--------.>+.>++.+++.

Hello World!


Press ENTER to exit

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

Verfasst: 16.04.2012 12:13
von ts-soft
Dein Orginal-Code ist aber auch Fehlerhaft, Zeile 90 z.B.
Der Code wurde bisher lediglich gekürzt und nicht verändert, keine Ahnung warum es nicht mehr gehen sollte?
Mangels Ahnung von Gehirnfick, hab ich das auch nicht testen können.

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

Verfasst: 16.04.2012 12:16
von NicTheQuick
Ja, den Originalcode habe ich auch gar nicht getestet, Stargate wollte ihn nur mit Zeilenumbrüchen haben. Ich dachte sowieso wir wählen noch und legen nicht schon fest. ;) Aber man muss beim Originalcode ja nur das ".b" beim Redim weg machen, dann läuft's.

Aber dass keine Ausgabe kommt, ist natürlich schlecht. Dann kann man auch gleich alles wegkürzen. ^^

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

Verfasst: 16.04.2012 12:24
von ts-soft
Fehler liegt evtl. in der Globalisierung aller Variablen, aber im Orginal wurden ja auch nur manche Variablen deklariert.

Startcode sollte IMHO auch Variablendeklaration erforderlich machen. Ich wollte den aber nicht erst noch anpassen,
weil ich dachte es würde auch so gehen. Fremdcode ohne EnableExplicit fasse ich normalerweise ja nicht an :mrgreen: