Hier mal mein Code... wie man es nicht machen sollte!
Ein "Mathematische Ansatz", der für den Contest zudem nicht gültig ist weil ich vor dem letzten "print" mit poke 214,0 verhindere das der Bildschirm nach oben geschoben wird, ich poste den aber jetzt trotzdem mal.
Der Ansatz ist eigentlich wie folgt. Mit Modulo5 und einem "Toggle-Zähler" ( 0/1 ) bilde ich die Sequenz nach ( 2 1 2 1 2 - 2 1 2 1 2 ... ) Dieses Zahlenmuster/Zahlenabfolge bestimmt ja das gesamte Kreuz.
Jetzt berechne ich einfach für jede Zeile, wieviele Spaces brauch ich vor,zwischen,hinter den Reverse-Spaces des "X-Musters".
Für Zeile 12 ( die Mitte des Kreuzes ) verbiege ich das Muster ( anstatt einer 2 kommt eine 1 ) da sonst meine Berechnung nicht funktioniert.
Dieser "Mathematische Ansatz" läßt sich bestimmt auch besser/einfacher umsetzen als ich es gemacht habe ( da bin ich mir ganz sicher ).
Sind 236Bytes, mit einstelligen Zeilennummern, zusammengefaßten Zeilen kommt man glaube ich auf ~210Bytes ( aber ist ja eh egal )
- 10 poke53280,0:poke53281,0
- 20 b$(1)="{reverse on} {reverse off}":b$(2)="{reverse on} {reverse off}"
- 30 forc=0to24
- 40 m=c-int(c/5)*5
- 50 ifm=0thent=0
- 60 t=1-t
- 70 b=t+1+(c=12):h=h+b:v=40-(h-b)-b-1
- 80 u=h-b:if(c>12)thenu=v
- 90 q=40-2*u-2*b
- 100 printspc(u)b$(b)spc(q)b$(b)spc(u);
- 110 ifc=23thenpoke214,0
- 120 next:wait198,1
Ciao Dirk