Hallo Besucher, der Thread wurde 7,3k mal aufgerufen und enthält 47 Antworten

letzter Beitrag von maltes am

FizzBuzz Compo - und die Gewinner sind ...

  • peiselulli und peiselulli =)


    Falls ich nix vergessen habe, findet ihr alles im Dateianhang. D64 Images für die jeweiligen Kategorien, ergebnisse.txt, gueltig.txt und ungueltig.txt und ein weiteres ZIP-File mit den kompletten Beiträgen und Sourcecodes.
    Ich hoffe vor allem, ich habe nirgends einen Fehler gemacht. Ansonsten bitte melden.


    Den Inhalt der ergebnisse.txt pack ich eben hier rein:


    ------------------


    Auswahl der Beiträge:
    Letztenendes ist von denjenigen, die zwei oder mehr gültige Programme abgegeben haben logischerweise das jeweils "schnellste" und das jeweils "kürzeste" in der entsprechenden Kategorie gewertet worden. Wenn jemand nur ein Programm abgegeben hat, so taucht dieses der Vollständigkeit halber in beiden Kategorien auf.



    Durchführung der Zeitmessung:
    - LOAD"Dateiname",8,1
    - VICE Monitor Breakpoint auf $e38b (nur bei enthusi auf das bvc)
    - TI$="000000":RUN
    - und im VICE Monitor Speicherstelle $A2 ausgelesen


    The Joker ist einen Platz vor TheRyk, weil sein Programm 2 Bytes kürzer ist. Wenn man Zyklen zählen würde, wäre es noch eindeutiger, weil dort eine Schleife weniger benutzt wurde.


    Die Zeitmessung gestaltete sich leider beim Eintrag von skoe und robert etwas schwierig. Da beide auch Kernal Routinen nutzen, wäre Zyklen zählen ziemlich mühsehlig.


    Pi*Daumen heisst: ich habe alle Einträge mit Autostart INJECT aus dem Dateibrowser mit VICE gestartet und so schnell wie möglich den Monitor angeworfen und den Wert aus $A2 notiert. Das ganze habe ich 5 mal wiederholt und dann den Mittelwert errechnet.
    Die Einträge von skoe und robert wurden bei den Beiträgen einsortiert, die "ungefähr" bei dieser Methode die gleichen Werte hatten.


    ------------------


    Vielen Dank für die rege Beteiligung. War eine sehr interessante Compo. Insbesondere bin ich überrascht, dass doch tatsächlich 3 ASM Progs auch in der Kategorie Größe führen, bevor ein Basic Prog kommt.

  • Huch?
    Warum ist mein schnellstes so langsam?
    Ach so. Was wurde denn aus asm01 ?
    Hast Du bankswitch-Varianten rausgeworfen.
    Ich hege Zweifel and der TI-Methode.
    Sehr SEI-Abhaengig :)
    Zu Robert wollte ich noch schreiben, dass es KEINE Kernal-calls verwendet :)


  • Ach so. Was wurde denn aus asm01 ?
    Hast Du bankswitch-Varianten rausgeworfen.


    siehe Begründung in ungueltig.txt. peiselulli hat angekreidet, dass es nicht auf dem alten Kernal läuft. Da keiner widersprochen hat, habe ich das so akzeptiert.


    Zitat


    Ich hege Zweifel and der TI-Methode.
    Sehr SEI-Abhaengig :)


    Ich hab Stichprobenartig die "Probe aufs Exempel" gemacht. Hatte nirgends Schwankungen drin. [also nur bei der manuellen natürlich - deswegen hab ich die auch vermieden].
    EDIT: außerdem könnte sich da eher Colt beschweren. Der ist nicht so weit unter Dir und bei Dir musste ich den Breakpoint auf das bvc setzen.


    Zitat


    Zu Robert wollte ich noch schreiben, dass es KEINE Kernal-calls verwendet :)


    Au, da hab ich mich verschrieben. Dennoch meine ich, dass es ungefähr richtig einsortiert ist. Könnte auch auf 2. gehören. Ich war da unentschlossen.

  • Leute, was fresst ihr fürn Zeug um auf solche Lösungen zu kommen?


    Keine Ahnung, muss mal überlegen, ob die Tage was Spezielles dabei war? War bestimmt irgendetwas völlig Ungesundes.


    Ingesamt hat das richtig Spaß gemacht, insbesondere das "Rennen" mit Drazil, der als Erster die 90 geknackt hat. Die ersten Versuche waren knapp unter 200 Byte, ein paar Tage später schien die 100 Byte-Grenze unüberwindbar und zum Schluß waren es dann 84 Byte. Ob da noch mehr gegangen wäre, wollte ich dann nicht mehr wissen ;-)
    Die Ergebnisse hier sind echt erstaunlich und hätte ich so nie für möglich gehalten. Hut ab!


    Gruß Dirk

  • Bitteschön ...


    Der kürzeste ...



    Den schellsten habe ich gerade nicht hier, der ist aber auch zu trivial ...
    BTW, der "cpx #00" muss sein, ansonsten verhapselt sich eventuell der Basic-Interpreter nach dem Laden in eine Endlosschleife ...
    (Deshalb läuft die 51 Byte Variante eventuell nicht)


  • Den schellsten habe ich gerade nicht hier, der ist aber auch zu trivial ...


    Na eben ja doch nicht so ganz trivial. Das mit dem alten Kernal hatte ja irgendwie niemand auf dem Schirm [ich übrigens auch nicht, hab allerdings drauf verzichtet meine Version zu posten, da die 1:1 enthusis asm01 entsprach]. Dabei ist das eigentlich *bekannt*, dass Commodore da später noch ein bisschen was glattgebügelt hatte.

  • The Joker ist einen Platz vor TheRyk, weil sein Programm 2 Bytes kürzer ist. Wenn man Zyklen zählen würde, wäre es noch eindeutiger, weil dort eine Schleife weniger benutzt wurde.


    Nur 1 Schleife? Da würde ich ja gern den Code mal sehen, um zu checken, ob WIRKLICH von links oben nach rechts unten geschrieben wird... :) Tja, wäre mir klar gewesen dass kein RTS notwendig ist, hätte ich nur noch irgendwo 1 byte sparen müssen... aber wo...


    Egal, ich gratuliere fair allen Teilnehmern und sage artig danke an Spider, war mal wieder great fun.


    Mit Platz 3 in Speed muss ich mich nicht verstecken, bin zufrieden, für einen 2-jahre-asm-erfahrenen zumindest ein Zeichen, dass man ein bisschen was verstanden hat ;)

  • Kann mir eigentlich jemand erklären, wie enthusi's Spaß POKE1,0 Beitrag funktioniert?
    Also ich komme soweit, dass der Interpreter ja nach $b824 springt um den Poke abzuarbeiten. Der Code lädt nach $b82c - an der Stelle ist im ROM ein rts. Allerdings frage ich mich nun: wann wird eigentlich auf das RAM unter dem Basic-Rom umgeschaltet? Denn in das ROM wird der Code ja mit Sicherheit nicht geladen.

  • Herzlichen Glückwunsch an den Gewinner, super gemacht! Aber auch die anderen Beiträge sind prima, hab mir die gerade mal genüsslich durchgeschaut... :thumbsup:


    Hm, meine Intention, $A2 zum Überlauf zu bringen und beim Speed wieder ganz vorn dabei zu sein, hat nicht ganz geklappt, LOL... :P Egal, dann bin ich halt der Langsamste, das muss man auch erstmal hinkriegen! ;)