Hallo Besucher, der Thread wurde 12k mal aufgerufen und enthält 52 Antworten

letzter Beitrag von nores am

Basic 10-Liner Contest 2019

  • Hallo Leute,
    es geht wieder los.


    http://gkanold.wixsite.com/hom…pie-von-games-list-2019-1


    Einsendeschluss: Samstag, 30. März 2019, 18.00 Uhr CET


    Alle anderen Details findet ihr im Link.

  • Der Link geht leider nicht.

  • Mir fällt was ein, aber k.A. wie ich das in 10 Zeilen Commodore BASIC quetschen soll... :/
    Verstehe die Regeln auch noch nicht so ganz. Ab Pur-120 kann man auch Module nehmen, also sowas wie Simons' Basic?
    Und wie listet ihr die auf? Wenn ich z.B. mit C64Studio arbeite?! Kann man da irgendwo sehen, dass 80 Zeichen inkl. Abkürzungen erreicht sind, wie wird das überprüft?
    Sollte ich mehr als 80 nehmen, falle ich automatisch in Kategorie 120?
    Verbotene Maschinenprogramme = eigene oder auch die im Kernal?


    EDIT: Mit Atari 800 dürfte ich dieses beliebte Turbo BASIC nehmen ab Pur-120?

  • Eigentlich mag ich ja mehr eine schlichte Begrenzung in Kilobyte anstatt in Zeilen. Und eine einzige erlaubte DATA-Zeile Maschinencode fände ich sinnvoll, wenn keine BASIC-Erweiterung genutzt wird.


    Die Fragen von Willem sind völlig berechtigt, finde ich. Wenn man BASIC-Erweiterungen benutzen darf, aber keine Maschinensprache im BASIC-Programm, dann kann man sich ja das bisschen, was man als Maschinensprache braucht, selbst als BASIC-Erweiterung machen, und schon ist es legal? Wahrscheinlich heißt es dann, dass nur "bekannte" verwendet werden dürfen. Das wäre dann wiederum diskutabel. So war damals eine kleine Joystickabfrage-Implementierung als BASIC-Erweiterung durchaus populär, während ich vom (eingeschlafenen) DotBASIC jetzt das erste Mal las. Oder gibt es eine Liste erlaubter Erweiterungen? Das wäre dann sinnvoll.


    Kernal-Aufrufe scheinen erlaubt zu sein nach meinem Verständnis, denn der Kernal-Code gehört ja nicht zum Programm selbst. Das ist auch eigtl. üblich so. Die 64k-PC-Demos sähen ohne Bibliotheken auch nicht so fett aus. Ohne Kernal-Aufruf wäre bei V2 ja allein schon das Setzen des Cursors ein Kreuz. Das ist ja 8-bit-Sadomaso. :sm: Sicher bin ich mir auch nicht, denn ich habe mehrere Programme aus den letzten Jahren angesehen und kein SYS o.ä. darin entdeckt.


    Und dann die Sache mit der Zeilenlänge. Die Überprüfung, die sich ja einfach mit einer kleinen Assemblerroutine machen lässt, erscheint mir da noch einfacher als die Eingabe. Man weiß gar nicht, wie lang die tokenisierte Zeile ist, und vor allem bräuchte man bei 250 Zeichen einen automatischen Umbruch, weil man sich sonst einen Wolf scrollt.


    Ich versuche zuerst, meine Idee mit BASIC V2 und 80 Zeichen zu lösen. Da bin ich allerdings sehr skeptisch, obwohl ich ansonsten Optimist bin. Wenn es nicht passt, mache ich längere Zeilen, aber werde mir dafür zuvor was zur Überprüfung ins Studio einbauen. Hab da sowieso schon einiges eingebaut, justierbaren Zeilenabstand, optionale Randlinie, optimierten BASIC-Cursor für C64ProMono (automatisch), die Option "Strip Remarks" und die Entfernung leerer Zeilen.


    Was ich mich auch frage: Sollen es unbedingt Spiele sein, oder gehen auch Anwendungen und Demos?

  • Kann man da irgendwo sehen, dass 80 Zeichen inkl. Abkürzungen erreicht sind, wie wird das überprüft?

    Beim "CBM prg Studio" unter "Tools" -> "Options" kannst Du "Show Character count" aktivieren. Dann siehst Du in der Source-Code Editor-Spalte jeweils die Anzahl Zeichen einer Zeile.


    Daneben sehr hilfreich ist die Option "Edit" -> "Advanced" -> "Compress". Das konvertiert den BASIC-Code in die abgekürzte Schreibweise, also zum Beispiel "?" statt "PRINT". Dabei siehst du dann gleich, ob die 80 Zeichen (bei PUR-80) noch nicht überschritten wurden. Mit "Uncompress" passiert das Gegenteil.


    Damit kann man dann schon recht gut arbeiten, um das Maximum des Erlaubten beim BASIC Tenliners Contest herauszuholen.

  • @HOLY MOSES/ROLE .. Du hast ein h vergessen. :P


    Nein, natürlich ist es richtig, sich mit solchen Dingen nicht aufzuhalten, wenn einem ein anderes Projekt wichtiger ist. Genau aus dem Grund wollte ich erst auch verzichten, aber andererseits will ich mich deswegen auch nicht überall ausschließen. Mich hatte es bereits geärgert, dass ich nichts zum Weihnachts-Heftchen beitrug, und das, obwohl dabei die Bedingungen viel lockerer waren. Für den Fall, dass es dieses Jahr wieder eines gibt, werde ich nach Möglichkeit was nettes auf Vorrat machen.


    Ich bin mit meinem PUR-80-Beitrag fast fertig. Waren erst 36 Zeilen, nun noch 11 ohne Abstriche, und es muss noch eine Zeile weg und noch ein funktionierendes Scoring hinzu. Es ist ein dauernder Kampf zwischen Skepsis und Optimismus. ;)

  • Beim "CBM prg Studio" unter "Tools" -> "Options" kannst Du "Show Character count" aktivieren. Dann siehst Du in der Source-Code Editor-Spalte jeweils die Anzahl Zeichen einer Zeile.
    Daneben sehr hilfreich ist die Option "Edit" -> "Advanced" -> "Compress". Das konvertiert den BASIC-Code in die abgekürzte Schreibweise, also zum Beispiel "?" statt "PRINT". Dabei siehst du dann gleich, ob die 80 Zeichen (bei PUR-80) noch nicht überschritten wurden. Mit "Uncompress" passiert das Gegenteil.


    Damit kann man dann schon recht gut arbeiten, um das Maximum des Erlaubten beim BASIC Tenliners Contest herauszuholen.

    Nur leider funktioniert auch das noch nicht richtig. Um ein Haar hätte ich deswegen was zu langes abgeschickt. Es bleibt also nur, mühselig von Hand zu prüfen, und deswegen finde ich diese Disziplin suboptimal.


    Beispiel:
    snapshot_008.png

  • Nur leider funktioniert auch das noch nicht richtig.

    Arthur Jordison - der Entwickler vom CBM prg Studio - ist super dankbar, wenn man ihm solche Ausreisser mitteilt: http://www.ajordison.co.uk/Contact.html
    Bei Verwendung von Screencodes kam es bei mir auch schon zu komischem Zähl-Verhalten. Ich habe Arthur bereits einige BUG-Feedbacks geschickt und er war immer sehr schnell im Korrigieren.


    Zum GANZ sicher sein - für PUR-80 - kopiere ich meinen komprimierten ("Compressed") Code jeweils in einen separaten tab und ersetze dann manuell jeden Screencode durch ein einzelnzes Zeichen (z.B. {gray} mache ich zu einem 'g'):


    ?"{gray}2019" -> ?"g2019"


    Damit sehe ich recht schnell, ob ich die 80 Zeichen nicht überschreite, weil diese Bemessungsgrundlage ohne Screencodes im CBM prg Studio zuverlässig funktioniert.


    Für das finale "Beweisfoto" (Screenshot vom eingetippten Code in VICE) kopiere ich dann Zeile für Zeile ins VICE und tippe die Strings, welche Screencodes erhalten, nochmals von Hand ein. An der Stelle des 'g' drücke im VICE dann die Tastenkombination <C=>+5. Ist sicher etwas mühsam, aber für das eine Mal im Jahr, ist dieser Zusatzaufwand für mich ok. Das Beweisfoto ist für die Teilnahme an der Compo nicht erforderlich, das mach ich jeweils aus freien Stücken (sieht aber auch cool aus, wenn man den benötigten Code mt dem effektiven Spiel optisch direkt vergleichen kann).


    deswegen finde ich diese Disziplin suboptimal

    Die Regeln sind so gegeben und jeder muss halt selber wissen, wie er damit umgeht. Ein beeindruckender Zehnzeiler (vor allm in PUR-80) soll ja auch zeigen, dass da besondere Hingabe erforderlich war. Sonnst könnte es ja Jeder.

  • @wizball6502 Danke. Endurion ist eigtl. auch nah dran: Anstatt (im C64 Studio) die Abkürzungen bei der Eingabe direkt als vollen Befehl auszuschreiben (wie es derzeit ist), könnte man die eingegebene Abkürzung (am besten optional) so stehen lassen. Also genauso, wie es auch mit dem '?' aka PRINT gehandhabt wird bzw. wie es im echten C64 ist, solange man nicht neu listet. Dann braucht man nur noch eine einstellbare Randlinie (hab ich bei mir schon drin).


    Ich hatte es jetzt schon so ähnlich gemacht, wie du beschreibst, indem ich (nach dem Komprimieren im CBM-Studio) die Text-Passagen aus dem Programm im C64-Studio ins CBM-Studio kopiert hatte. Dann erscheinen dort für Sonderzeichen jeweils nur Platzhalter-Kästchen, und man kann ebenfalls sehen, ob die Zeile die Linie überschreitet, und die Zählung am linken Rand stimmt dann natürlich auch.


    Für einen Screenshot kopiere ich das dann aus dem CBM-Studio in mein TVP (OO-Writer). Wenn man das im TVP mit "C64 Pro Mono" formatiert, erscheinen ja wieder die Sonderzeichen. Querformat und 9pt passt ganz gut.
    Alternativ lässt sich auch "C64 Pro Mono" im CBM-prg-Studio einstellen, aber leider kann man dort die Zeilenhöhe noch nicht korrigieren, und so ist es dann etwas zusammengepappt.


    Jetzt mach ich noch eine an den Haaren herbeigezogene Vorstory bzw. Situationsbeschreibung, eine Bedienungsanleitung und die Erklärung des Programmcodes, und da kann ich nicht mit warten, denn nächste Woche weiß ich selbst nicht mehr, wie und wieso das so funktioniert. :) Ein "Long-Play" will ich auch noch erstellen, als privates Video bei Yt hochladen und verlinken.


    Aus wem besteht eigentlich die Jury? Gibt es keine öffentliche Abstimmung?

  • Genau. Die 80 gilt für das, was man am jeweiligen Computer maximal eingeben kann, also indem man keine Leerzeichen nutzt und alle Befehle abkürzt (ich glaube bei manchen Modellen sogar per einmaligem Tastendruck). Oder anders gesagt: Unter Verwendung der Abkürzungen muss man das Programm in einen Real-C64 (oder andere) eingeben können. Beim nächsten Listen ist es dann in ausgeschriebener Form natürlich länger und sieht so aus, wie man es im Studio eingegeben hätte (vom ?=PRINT abgesehen).


    Wenn man das einmal eingebaut hätte, ließe sich das für PUR-120 und PUR-250 ja auch anwenden.
    In dem Falle wäre allerdings auch ein Textumbruch sinnvoll, weil man sich sonst 'nen Wolf scrollt. Die FCTB hat das schon eingebaut, hab ich gesehen.

  • Also, wenn man das Programm im Steuerzeichen-Modus vom C64-Studio ins CMB-Studio kopiert und dort komprimiert, geht die Überprüfung derzeit wahrscheinlich am schnellsten.
    Und davon kann man auch direkt einen Screenshot machen, also auch ohne Textverarbeitungsprogramm, wie ich erst meinte.
    Wenn man das allerdings in den C64-Screen kopiert, nervt mich, dass er nach jeder Zeile, die ganze 80 Zeichen lang ist, einen Zeilenvorschub macht.



    Mit strukturiertem Programmieren hat das aber nicht mehr viel zu tun. Sieht eher aus, als käme es direkt aus der Schrottpresse. :lol27:
    Noch schlimmer ist, dass man dann z.B. Dinge mit in eine Schleife packt, nicht etwa weil sie dort hingehören, sondern weil nur dort noch Platz ist. :facepalm:


    Mein größtes Problem ist immer die Entscheidungsfindung. So hatte ich auch jetzt zum Schluss noch etwas eingebaut, was dem Design nützt,
    aber der Performance schadet. Bei so was quäle ich mich immer mit der Frage, was sinnvoller ist.

  • Ich möchte den Thread hier nicht missbrauchen, deshalb sagt mir gleich wenn ich Unsinn erzähle.


    Gibt es einen Wettbewerb für Assembler Programmierung? Hab gegoogelt und nix gefunden.


    Meine Vorstellung wie sowas laufen könnte: verschiedene Klassen, wie z.B. 256 Byte, 1 KB, 4 KB. Teilnehmer gibt ein Image ab. Das wird von einem Ladeprogramm (der Jury) nach 49152 geladen und mit einem sys 49152 gestartet.


    Gibt es sowas schon?