Strona główna Informacje Kontakt

archeologia informatyczna, listingi w basicu
Wydarzenia Gry Listingi Komputery Książki
29 stycznia 2015 r.
Jednolinijkowy generator labiryntu w języku BASIC

W latach 80. każdy posiadacz komputera 8-bitowego był programistą. Nawet ten, kto używał go tylko do uruchamiania gier. Aby ustawić komputer w tryb wczytywania programu, należało bowiem wpisać instrukcję LOAD z parametrami i wcisnąć ENTER. Jak wynika z tej ankiety, ówczesne komputery zdominowane były przez cztery platformy: ZX Spectrum, Atari XL/XE, Commodore i Amstrad CPC. Wszystkie miały wspólną cechę w postaci interpretera języka BASIC, uruchamianego od razu po włączeniu komputera.

Język BASIC był narzędziem o niemal nieograniczonych możliwościach i wiele razy dawał dowód na to, że ciekawy algorytm nie musi być liczony w setkach linii kodu. Potwierdzeniem tego jest poniższy jednoliniowy kod w basicu dla komputera Commodore 64. Jego zadaniem jest wykonywanie nieskończonej pętli, losowo wyświetlającej prawy lub lewy ukośnik.

10 PRINT CHR$(205.5+RND(1)); : GOTO 10

Efekt działania tego krótkiego programu jest zadziwiający: na ekranie tworzy się graficzny labirynt, który mógłby być podstawą niejednej gry komputerowej.

Jeśli jedna linia programu służy za generator labiryntu, wystarczy wyobrazić sobie co może zdziałać program, składający się z kilkudziesięciu linii. Na szczęście historia komputerów jest pełna dowodów na inwencję osób, korzystających z języka BASIC. Będziemy się temu przyglądać w kolejnych artykułach.

Autor tekstu: Mr.Wolf - użytkownik komputera ZX Spectrum od 1986 r., kolejne komputery: Atari 65XE, Commodore 64 i Amiga 500.
Komentarze:
plyr02015-02-04 07:33
Atari:
10 PRINT CHR$(6+RND(1)); : GOTO 10
whiskey2015-02-04 14:56
Rewelacja!
ZbyniuR2015-02-05 16:06
W Amstradzie by uzyskać taki sam efekt linia musi wyglądać tak:

10 PRINT CHR$(204+RND*1);:GOTO 10

Przed wpisaniem RUN można zmienić MODE, może być ciekawie. ;)
zxfan2015-02-05 16:40
Na ZX Spectrum linia wygląda tak:

10 PRINT CHR$ (47+INT (RND*2)*45);: GOTO 10

Niestety ukośniki w Spectrumie nie zajmują całej przekątnej znaku, dlatego labirynt wygląda słabiej niż na Commodore 64 i Atari.
ZbyniuR2015-02-05 19:23

Na CPC fajnie też wygląda gdy zawartość nawiasu zmienimy na (203+2*RND) wtedy ma więcej pętelek, lub (192+10*RND) wtedy ukośniki są krótsze i bardziej skomplikowane, albo (192+10*RND) wtedy mamy podobną mozaikę ale z pionowych i poziomych. :)
at0m2015-02-11 20:59
Na Amidze w Amosie program będzie wyglądał następująco:
10 Print Chr$(47+RND(1)*45); : Goto 10


Dodaj komentarz:

Podpis: (wymagane)
Adres Twojej strony WWW: (opcjonalnie)
Twój adres e-mail: (opcjonalnie - tylko do wiadomości redakcji)
Treść komentarza:
Antyspam: policz ile
wynosi jeden plus dwa:
(wymagane)







Dzień, w którym pojawił się pierwszy komputer
Relacja ze Speccy.pl Party 2015.1 w Warszawie
Stare helikoptery jak Atari, nowe jak IBM PC
Warsaw Basic
Muzyka z gry International Karate a cappella

Fred - świetna gra zręcznościowa z 1984 roku
Strike Force Cobra
Zybex - szybka i kolorowa gra shoot'em up
Deathchase - pościg w lesie inspirowany Powrotem Jedi
Jumping Jack - klasyk wśród gier zręcznościowych

Trójwymiarowe wykresy w basicu na ZX Spectrum
Jednolinijkowy generator labiryntu w języku BASIC

ZX Spectrum - komputer z prawdziwego zdarzenia
Elwro 800 Junior - polski komputer edukacyjny

Grafika komputerowa
1000 słów o komputerach i informatyce