Nachdem wir ja hier viel rumdiskutiert haben und scherzten, bin ich im Netz über etwas gestolpert, das sicherlich ein kleiner Spaß sein könnte.
Die Aufgabe lautet:
"Schreibe ein Program, dass die Zahlen von 1 - 100 auf dem Bildschirm ausgibt. Bei Zahlen, die durch 3 teilbar sind soll jedoch "FIZZ" und bei Zahlen, die durch 5 teilbar sind "BUZZ" anstatt der Zahl ausgegeben werden. Ist eine Zahl durch 3 UND durch 5 teilbar soll "FIZZBUZZ" anstatt der Zahl ausgegeben werden."
Regeln:
- Die Ausgabe muss komplett auf einen C64 Screen passen
- Die Reihenfolge der Ausgabe sollte von links nach rechts / oben nach unten erfolgen und korrekt sein
- ALLE Programmiersprachen sind erlaubt, BASIC/ASM/C/Brainfuck etc...
- Das Programm muss allerdings auf einem Standard C64 mit LOAD"Programmname",8,1 geladen und per SYS oder RUN gestartet werden können
Um lästiges Voting zu vermeiden gibt es schlicht und ergreifend ZWEI Gewinnkategorien:
- Größe
(so "kurz" wie möglich - in Bytes OHNE Startadresse)
- Geschwindigkeit
(so "schnell" wie möglich - im Zweifelsfall verbrauchte Zyklen)
Es ist nicht zwingend notwendig einen mathematischen Algorithmus zu verwenden. Sprich: reines PRINTen oder STAen der richtigen Werte auf den Screen würde genügen (verschwendet aber vermutlich eh zu viele Bytes).
Als Zeitrahmen würde ich sagen: Deadline ist nächster Samstag, 10.9.2011.
Entries sollten im Laufe des Samstags hier im Thread durch anhängen einer .prg/.d64 Datei erfolgen + Source als .txt Anhang oder im Beitrag in code-Tags eingereicht werden. Sobald alle Einträge eingegangen sind, also spätestens ab Sonntag, 11.9. werden wir hier einfach gemeinsam auseinanderklamüsern, welche Einträge gewonnen haben.
Es wäre schön, wenn vor Samstag kein Code gepostet werden würde, sondern lediglich Sticheleien wie "Ich hab's bislang in X Bytes und Y Zyklen mit Programmiersprache Z geschafft" auftauchen würden.
Dem/den Gewinner/n winkt - wie immer - Ruhm, Ehre und Neid
Zum besseren Verständnis hab ich hier mal ein fix eingehacktes Basic-Programm angehängt, das verdeutlicht, was zu tun ist.
fizzbuzz.prg
- 10 for i = 1 to 100
- 12 a = 0 : b = 0
- 14 if (i/3) - int(i/3) = 0 then a = 1
- 16 if (i/5) - int(i/5) = 0 then b = 1
- 18 if (a = 1) and (b = 1) then print "{wht} fizzbuzz ";
- 20 if (a = 1) and (b = 0) then print "{gry3} fizz ";
- 22 if (a = 0) and (b = 1) then print "{yel} buzz ";
- 24 if (a = 0) and (b = 0) then print "{grn}";i;
- 26 next i
- 28 print "{lblu}"
Falls keiner mitmachen will, gewinne ich natürlich mit meinem Basic-Programm =P
Nee, ernsthaft: wäre schön, wenn ihr hier kurz bescheid gebt, ob Ihr da überhaupt Bock drauf habt und ggf. dabei wärt. Sollten imho schon mindestens 4-5 Leute mitmachen, damit es sinnvoll ist. Ansonsten betrachtet diese Posting einfach als Gegenstandslos
Wenn jemand eine bessere Idee hat oder Verbesserungsvorschläge zu den Modalitäten - immer her damit!!!