Konkurs NOMAM: BASIC Ten-Liners 2015 by Adam Wachowski 2015-01-30 18:39:51

Gunnar "Bunsen" Kanold ogłosił zasady tegorocznej, czwartej już edycji konkursu na najlepszą grę mieszczącą się w 10 liniach kodu języka BASIC. Konkurs tradycyjnie organizowany jest z okazji niemieckiego zlotu miłośników komputerów retro NOMAM ("Not Only Marvelous Atari Machinery") odbywającego się wiosną w Lubece.

W roku 2011 była to zabawa ograniczona do kodowania na żywo podczas trwania party. Analogicznie było w 2013 roku, a 6 powstałych wówczas dziesięciolinijkowców zostało zgłoszonych do konkursu programistycznego ABBUC jako jeden zestaw gier (efekt: niezłe 9. miejsce na 14 zgłoszeń).

Przełomowy był rok ubiegły, kiedy to konkurs ogłoszono wcześniej na forach, a zgłoszenia były przyjmowane z całego świata (z Polski wystartowali Pirx, Ilmenit, mgr inż. Rafał, Sikor i Kuba Husak) – łącznie powstało 40 gier. Została nawet wydana książka ze wszystkimi grami i informacjami o ich autorach.




W tym roku organizatorzy idą za ciosem i jeszcze bardziej rozszerzają formułę, zarówno jeśli chodzi o platformy, jak i dialekty języka BASIC. Oto ich pełna lista:

8-bitowe Atari:
- Atari BASIC
- Turbo BASIC XL
- Altirra BASIC
- OSS BASIC XE
- OSS BASIC XL

Commodore 64
- Commodore BASIC V2
- Simon's BASIC

Commodore 128
- Commodore BASIC 7.0

Amstrad/Schneider CPC
- Locomotive BASIC 1.0
- Locomotive BASIC 1.1


Rywalizacja będzie prowadzona w następujących kategoriach:

1. Kategoria "PUR":
Linia kodu może zawierać maksymalnie 120 znaków, skróty są dozwolone.

2. Kategoria "EXTREM":
Linia kodu może zawierać maksymalnie 256 znaków, skróty są dozwolone.

3. Kategoria "LIVE":
W trakcie zlotu NOMAM zostanie ogłoszone zadanie programistyczne, które ma być rozwiązane w ciągu 2 godzin


Zasady:
- nie można doczytywać danych ani kawałków programu;
- program nie może zawierać instrukcji kodu maszynowego;
- używanie POKE-ów jest dozwolone (żeby np. zmodyfikować Display List, grafikę Player-Missile);
- deadline: zdalnie – środa 8 kwietnia, godzina 21:00 czasu letniego środkowoeuropejskiego (maile przesyłamy na adres GKANOLD-małpka-gmail-kropka-com), na miejscu – sobota 11 kwietnia, godz. 21:00;
- głosowanie, a potem przyznanie nagród: sobota 11.04 o 23:30;
- wraz z kodem powinien być dostarczony również plik tekstowy, zawierający opis i instrukcję gry;
- programiści wyrażają zgodę na publikację tych programów, opisów i instrukcji przez organizatora;
- głosować mogą wyłącznie uczestnicy zlotu NOMAM w Lubece.

Zachęcamy wszystkich do wzięcia udziału!


Pojawiły się już pierwsze zgłoszenia:

1. "Chase" (Atari) - autor: Holger "Rockford" Bommer




2. "Micronoid" (CPC) - autor: Markus "Devilmarkus" Hohmann

3. "Get!" (Atari) - autor: Chris "atariland2600" Read




4. "K1nderc0mp" (Atari) - autor: Chris "atariland2600" Read




5. "Mini-Breakout" (Atari) - autor: Adrian Groves




6. "Hearts & Bullets" (C64) - Vincent "Bytebreaker" Truppe

7. "Hangman" (Atari) - autor: Adrian Groves




8. "Navigator" (C64) - autor: "e5frog"

9. "Racer" (C64) - autor: Georg "Endurion" Rottensteiner

10. "Bad Square Swarm" (C64) - autor: "Hexworx"

11. "Simon" (Atari) - autor: Adrian Groves





Linki:

- oficjalna strona ze zgłoszeniami

- wątek w języku angielskim

- wątek w języku niemieckim


Przykładowe gry z poprzednich lat:

"Jump!" Xuela - zwycięzca w kategorii PUR w 2014

"2047" Pirxa - zwycięzca w kategorii EXTREM w 2014



"Moonlander" Stefana Dorndorfa (2013)



"Flappy" Pirxa (2014)
pin 2015-01-30 20:57:00

Da się obejść regulamin na dwa sposoby. Jeden umożliwia zapisanie większej ilości danych w linii, niż zazwyczaj (np. 160 znaków + skróty instrukcji), drugi trick zastosował onegdaj w podobnym konkursie Magnus, pisząc pracę w asm ;)

pin 2015-01-30 21:01:36

np. teraz mam w tbxl jedną linię na pięć linii. 190 znaków :D

Adam 2015-01-30 21:28:46

Pin, nawet nie przeczytałeś tego, co jest powyżej, prawda? Bo po co, jak można napisać jakiś komentarz ;) Wyraźnie jest napisane, że istnieje odrębna kategoria z liniami do 256 znaków ze skrótami. A wywoływanie kodu maszynowego jest niedozwolone.

pin 2015-01-30 21:50:36

... przeleciałem wzrokowo do punktu zasady - przepraszam ;)

Ale co do kodu maszynowego, to nie jestem przekonany. Może inaczej zapytam - czy można użyć instrukcji REM i dowolnych znaków po niej następujących, oraz zapisać 2* poke i wyjść do DOS? Odpowiedz na takie pytanie.

Adam 2015-01-30 22:16:08

@pin: intencja organizatorów jest jak rozumiem taka, że nie można tak zrobić. Bunsen już raz zmieniał treść odpowiedniego punktu regulaminu, w tej chwili brzmi on "the 10 lines of the programm can not contain self-written machine code". Nie wykluczam, że ta treść będzie przez organizatorów jeszcze ulepszana i doprecyzowywana, żeby przekaz dla różnych "spryciarzy" był klarowny :)

pin 2015-01-31 01:09:55

Czyli nie można korzystać z instrukcji REM mimo, że nie jest to jasno powiedziane? ;)-

Adam 2015-01-31 11:25:10

Samo REM jest oczywiście dozwolone :) Ale jeśli po REM umieszczasz sekwencję, która ma realizować kod maszynowy, to zostanie to potraktowane jako "self-written machine code". Tak to rozumiem.
Najlepiej jest wyjaśniać wątpliwości u źródła, w zasadach podany jest adres głównego organizatora. Być może po wysłuchaniu Twojej argumentacji Bunsen poprawi odpowiedni punkt.

Adam 2015-01-31 11:31:28

A jeśli masz pomysł na świetnego dziesięciolinijkowca i blokuje Cię tylko niemożność użycia instrukcji po REM, to nie przejmuj się, pisz śmiało :) Najwyżej NOMAM odrzuci zgłoszenie w konkursie, ale ludzie mogą taki program docenić. My chętnie go opublikujemy i opiszemy. Pozdrowienia!

pirx 2015-02-01 21:08:05

teraz w regulaminie są dwa wiersze na temat ML:

- Call of machine language programs are prohibited
- the 10 lines of the programm can not contain self-written machine code

Czyli nie tylko USR jest zabronione, ale trick z DOS też, bo to jest niewątpliwie "Call of ML". Przed tym dopiskiem można by sobie wyobrazić wywołania ML z ROMu za pomocą komendy DOS.

Adam 2015-02-01 21:41:24

No niezupełnie - pierwsze zacytowane przez Ciebie zdanie zostało zastąpione przez to drugie, tyle że Bunsen nie wie, jak zmienić swój pierwszy post na AtariAge i pierwsze ciągle tam wisi :) Na oficjalnej stronie to pierwsze zdanie jest wyczernione jako nieaktualne: http://gkanold.wix.com/homeputerium#!10liners/c15hi

Adam 2015-02-01 22:51:25

Zgłoszony został kolejny dziesięciolinijkowiec na Atari: "K1nderc0mp" - autor: ponownie Chris "atariland2600" Read.

pirx 2015-02-02 01:04:29

no to chyba fiaktycznie nie byłoby wbrew regulaminowi wywołyłać coś z ROMu za pomocą komendy DOS.

mono 2015-02-02 12:15:04

Albo przerwania :)

Adam 2015-02-03 11:38:46

Pojawiła się w konkursie kolejna gierka na Atari: "Mini-Breakout", autor: Adrian Groves

ZbyniuR 2015-02-05 00:29:41

Devilmarkus to ten sam co stworzył emulator JavaCPC. :)

Adam 2015-02-05 21:46:05

Zaktualizowałem listę zgłoszeń - w tej chwili jest ich 11, z czego 6 na Atari.