Seite 12 von 16
Re: Wäre es nicht mal wieder an der Zeit...
Verfasst: 18.04.2012 11:18
von NicTheQuick
7x7 hat geschrieben:Mann, gebt euch mal mehr Mühe
Mach du mal keine Fehler.
Erstens sind das 738 Zeichen und zweitens funktioniert das Laden aus Dateien nicht mehr und man muss jetzt nach Eingabe des Dateinamens nochmal Return drücken, was ebenfalls falsch ist.
Stargates Code ist also noch gültig. Heute Nacht war es wohl zu spät das mit dem "Not n" noch zu sehen.

Re: Wäre es nicht mal wieder an der Zeit...
Verfasst: 18.04.2012 11:27
von Sirius-2337
NicTheQuick hat geschrieben:7x7 hat geschrieben:Mann, gebt euch mal mehr Mühe
Mach du mal keine Fehler.
Erstens sind das 738 Zeichen und zweitens funktioniert das Laden aus Dateien nicht mehr und man muss jetzt nach Eingabe des Dateinamens nochmal Return drücken, was ebenfalls falsch ist.
Nicht ganz. Es sind
638 Zeichen und das Laden aus Dateien funktioniert bei mir noch. Dass mit dem doppelten Return drücken stimmt allerdings.
Re: Wäre es nicht mal wieder an der Zeit...
Verfasst: 18.04.2012 21:58
von ts-soft
Der letzte Beitrag bekommt 10 Stunden gutgeschrieben, so lange dauerte in etwa die Wartung für das PureBoard,
ca 11:30 -21:30, also wenn bis Morgen 20:00 Uhr kein Beitrag mehr kommt, hat dieser:
http://www.purebasic.fr/german/viewtopi ... 29#p301329 gewonnen, d. h. wenn er nicht wegen Nichtfunktion
disqualifiziert werden sollte
Nur mal vorsichtshalber festgehalten.
Re: Wäre es nicht mal wieder an der Zeit...
Verfasst: 18.04.2012 22:26
von RSBasic
Was bekommt eigentlich der Gewinner? Wurde das schon festgelegt? Wenn nicht, dann kriegt er ein

per PayPal, falls er sowas hat.

Re: Wäre es nicht mal wieder an der Zeit...
Verfasst: 18.04.2012 22:39
von ts-soft
RSBasic hat geschrieben:Was bekommt eigentlich der Gewinner? Wurde das schon festgelegt? Wenn nicht, dann kriegt er ein

per PayPal, falls er sowas hat.

Naja, sowas in der Art:
http://www.purebasic.fr/german/memberli ... ofile&u=21
Aber nicht den Schnürrsenkel, den meine ich nicht

Re: Wäre es nicht mal wieder an der Zeit...
Verfasst: 18.04.2012 23:06
von helpy
Ich habe da mal drüber geschaut.
Im Vergleich zum Original-Code wurde die Funktionalität beim Kürzen verändert!
Manche Meldungen werden nicht mehr ausgegeben!
Die folgende Aussage (siehe
http://purebasic.fr/german/viewtopic.ph ... 48#p301148) stimmt nicht mehr!
Der veränderte Code muss natürlich genauso funktionieren wie vorher.
Es wäre gut, wenn an irgendeiner Stelle die offiziellen Regeln als solche gekennzeichnet werden.
Sind die Regeln von t-soft die allgemein gültigen für diesen Contest?
==>
http://purebasic.fr/german/viewtopic.ph ... 51#p301151 :
Zu den Regeln würde ich Vorschlagen:
1. EnableExplicit in der ersten Zeile erforderlich, so bleibt es wenigstens etwas lesbar

(DisableExplicit dann natürlich nicht erlaubt!)
2. Macros erlaubt.
3. Nur Funktionen erlaubt, die auf allen 3 OSes zur Verfügung stehen.
4. Compilerdirektiven sind nicht erlaubt, also auch keine externen Dateien.
... oder gehören da noch welche dazu?
Da ja anscheinend die Funktionalität zumindest teilweise geändert werden darf ... und das Programm nicht 100%-ig dasselbe machen muss, wie das Original, frage ich mich natürlich, wo hier die Grenze ist.
Danke schon mal für Eure Aufklärung.
lg,
guido
Re: Wäre es nicht mal wieder an der Zeit...
Verfasst: 18.04.2012 23:12
von NicTheQuick
635
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 ReadFile(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)
m=@c
While PeekA(m)
n=PeekA(m)-44
i=h
If n<2
k(f)-n
W
If n=0
If h=i
U
W
k(f)=Asc(h)
h=Mid(h,2)
W
If n>15
If n>46
a=(k(f)XOr n/49)!1*(48-n)
j=a
While j
m+a
j-((PeekA(m)/23)!3-3)/3
Wend
Else
f+n-17
If f<0
i="Memory pointer out of range"
Break
W
d+1
ReDim k(d)
W
W
If n=2
Print(Chr(k(f)))
W
m+1
Wend
W
Print(i+RSet("Press ENTER to exit",22,#LF$))
U
Re: Wäre es nicht mal wieder an der Zeit...
Verfasst: 18.04.2012 23:18
von STARGÅTE
Ich stimme helpy zu.
Die letzte änderung ist auf jedenfall nicht gültig, da sie die Funktion des Programm eindeutig geändert hat.
Nicht ohne Grund stand da ein Else und nicht nur ein EndIF
Auch seit dem IMA bei einer falschen Eingabe, wurde eigentlich der Code schon "illigal" verkürzt.
EDIT: mit NicTheQuick Code scheints wieder zu laufen.
Wäre aber gut, wnmen irgendwer den die StringVariable "c" "initialisieren" könnte, damit @c nicht 0 ist.
Re: Wäre es nicht mal wieder an der Zeit...
Verfasst: 19.04.2012 01:25
von NicTheQuick
632
Und damit ist Dank Stargate der Fehler auch gelöst.
Code: Alles auswählen
EnableExplicit
Global a,d,f,j,m,n,h.s,c.s=h,i.s
Macro U
h=Input()
EndMacro
Macro W
EndIf
EndMacro
OpenConsole()
Print("Filename (blank to use std in)...?")
U
If ReadFile(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)
n=FindString("+-<>.,[]",h)
If n
c+h
W
j-n/7*(n*2-15)
Wend
i="Uneven brackets"
If j=0
Dim k(d)
m=@c
While PeekA(m)
n=PeekA(m)-44
i=h
If n<2
k(f)-n
W
If n=0
If h=i
U
W
k(f)=Asc(h)
h=Mid(h,2)
W
If n>2
If n>46
a=(k(f)XOr n/49)!1*(48-n)
j=a
While j
m+a
j-((PeekA(m)/23)!3-3)/3
Wend
Else
f+n-17
If f<0
i="Memory pointer out of range"
Break
W
d+1
ReDim k(d)
W
W
If n=2
Print(Chr(k(f)))
W
m+1
Wend
W
Print(i+RSet("Press ENTER to exit",22,#LF$))
U
Re: Wäre es nicht mal wieder an der Zeit...
Verfasst: 19.04.2012 05:10
von STARGÅTE
Im übrigen möchte ich an dieser Stelle darauf hinweise, dass folgender Code so erhalten bleiben muss:
Global a,d,f,j,m,n,h.s,c.s=h,i.s
das c.s = h gesetzt wird, sorgt dafür, dass @c ein gültiger String-Pointer ist, sodass es kein IMA mehr gibt.
Wehe das kürzt jemand weg!