forum speccy.pl

ZX Spectrum => RÓŻNOŚCI => Wątek zaczęty przez: tsulej w 2012.12.05, 10:08:12

Tytuł: 10 PRINT
Wiadomość wysłana przez: tsulej w 2012.12.05, 10:08:12
http://trope-tank.mit.edu/10_PRINT_121114.pdf

A dokładniej: 10 PRINT CHR$ (205.5 + RND (1)); : GOTO 10

Jest to książka o 324(sic!) stronach napisana na MIT na temat powyższego jednolinijkowca wziętego z instrukcji do Commodore64. Z opisu wynika że książka traktuje o tym jak ta linijka wpłynęła na nasze (ludzkości?) myślenie o kodzie i kulturze.
Wyjątek z artykułu: http://www.slate.com/articles/technology/books/2012/11/computer_programming_10_print_chr_205_5_rnd_1_goto_10_from_mit_press_reviewed.html

Cytuj
The book, which has also been released for free download under a Creative Commons license, unspools 10 PRINT’s strange history and dense web of cultural connections, winding its way through the histories of mazes and labyrinths, grids in modern art, minimalist music and dance, randomness, repetition, textiles, screensavers, and Greek mythology. There are forays into early computer graphics, hacking, Cold War military strategy and Pac-Man. References abound, from the Commodore 64 user’s manual to Roland Barthes’ S/Z. This is a book where Dungeons and Dragons and Abstract Expressionism get equal consideration.

Książkę przejrzałem, mimo że wygląda ciekawie to nie wiem czy przebrnę.  :)

Pytanie, które rodzi się na dzień dobry. Czy są takie jednolinijkowce w BASICU na Spectrum? (Przez "takie" rozumiem krótkie programy o ciekawych efektach)
Tytuł: Odp: 10 PRINT
Wiadomość wysłana przez: Phonex w 2012.12.05, 11:10:53
Co za historia!

Na Spectrum (bez takiej historii w tle!):

10 PLOT 130,5: DRAW 0,160,788
lub
10 PLOT 130,5: DRAW 0,160,525
lub
10 PLOT 130,5: DRAW 0,160,399
itd.
Tytuł: Odp: 10 PRINT
Wiadomość wysłana przez: andy w 2012.12.05, 16:49:17
A dokładniej: 10 PRINT CHR$ (205.5 + RND (1)); : GOTO 10

RND(1) to nie na Speccy ;)

Takie coś:
10 PRINT CHR$ (205.5 + RND); : GOTO 10
wypisuje w kółko DEF FN
Tytuł: Odp: 10 PRINT
Wiadomość wysłana przez: tsulej w 2012.12.05, 17:15:49
Napisałem, że to na Commodore 64 :)
Tytuł: Odp: 10 PRINT
Wiadomość wysłana przez: Phonex w 2012.12.05, 17:55:50
Na Spectrum linia wyglądałaby tak:

10 PRINT CHR$(128+RND*15);: GOTO 10
Tytuł: Odp: 10 PRINT
Wiadomość wysłana przez: Phonex w 2012.12.05, 20:03:42
Hmmm, okazuje się że nie o to chodziło.

Według książki wersja/port na Spectrum wygląda tak:

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

Nie wygląda to tak ładnie jak na Commodore (ani linia, ani efekt), więc wymyśliłem taki krótki programik definiujący dłuższe kreski:

100 FOR a=0 TO 7
110 POKE a+USR "a", 2^a
120 POKE a+USR "b", 2^(7-a)
130 NEXT a

a teraz: 10 PRINT CHR$ INT (144.5+RND);: GOTO 10
Tytuł: Odp: 10 PRINT
Wiadomość wysłana przez: tsulej w 2012.12.06, 00:25:19
Ekstra. Wariacje na temat:

Niestety nie labirynt.
10 PRINT CHR$(134+INT(RND*2)*3);: GO TO 10

lub coś dłuższego
10 LET C=17-PEEK 23688: LET L=14-PEEK 23689: PRINT CHR$ (128+INT (4+4*SIN((PI*L/10)*(PI*C/15))));: GO TO 10
Tytuł: Odp: 10 PRINT
Wiadomość wysłana przez: matofesi w 2012.12.06, 09:51:33
@Phonex A jak się zrobi tak:

10 PAPER 1: BORDER 1: INK 7: CLS: FOR i=0 TO 7 : POKE USR "a"+i,INT (3*2^(i-1))): POKE USR "b"+i,INT (3*(2^(6-i))): NEXT i
20 POKE 23692,255: PRINT CHR$(143.5+(RND*2));: GO TO 20

To zaczyna wyglądać prawie identycznie jak na C64 ;)
Tytuł: Odp: 10 PRINT
Wiadomość wysłana przez: Phonex w 2012.12.06, 11:05:53
@Phonex A jak się zrobi tak:

10 PAPER 1: BORDER 1: INK 7: CLS: FOR i=0 TO 7 : POKE USR "a"+i,INT (3*2^(i-1))): POKE USR "b"+i,INT (3*(2^(6-i))): NEXT i
20 POKE 23692,255: PRINT CHR$(143.5+(RND*2));: GO TO 20

To zaczyna wyglądać prawie identycznie jak na C64 ;)

 :D

A jeszcze ładniej wygląda, jak się zrobi tak:

1 FOR a=0 TO 7
2 POKE a+USR "a", 3*2^(a-1)-NOT a
3 POKE a+USR "b", 3*2^(6-a)-NOT a-7
4 NEXT a

10 PRINT CHR$ INT (144.5+RND);: GOTO 10
Tytuł: Odp: 10 PRINT
Wiadomość wysłana przez: Tygrys w 2012.12.06, 11:47:23
No to macie już prawie gotowe intro na JH Con.   Teraz tylko dodać różne ozdobniki i miejsce na podium gwarantowane ;)
Tytuł: Odp: 10 PRINT
Wiadomość wysłana przez: matofesi w 2012.12.06, 13:32:46
A bez ozdobników może być na przykład tak jak w załączniku ;)

99 bajtów relokowalnego kodu i odpalacz. Całość ruszy pod warunkiem odpalenia z normalnym ROMem Spectrum - musi widzieć procedury drukujące itp. i uznawać zmienne systemowe. I to jest zasadniczo tyle na ile mam zacięcie ;)

Tytuł: Odp: 10 PRINT
Wiadomość wysłana przez: tsulej w 2012.12.06, 14:59:58
Funkcja rnd jest deterministyczna, widać wyraźnie że wzór układa się w cztery kolumny :)
Tytuł: Odp: 10 PRINT
Wiadomość wysłana przez: matofesi w 2012.12.06, 15:05:49
W moim kodzie to nawet nie jest RND tylko zawartość ROMu ;)
Tytuł: Odp: 10 PRINT
Wiadomość wysłana przez: Phonex w 2012.12.06, 19:41:24
No to macie już prawie gotowe intro na JH Con.   Teraz tylko dodać różne ozdobniki i miejsce na podium gwarantowane ;)

Serio serio?

Hmmm, mam nawet jakiś pomysł na ozdobnik, ale tylko pomysł, nie wiem czy to się da szybko napisać.
Jest jakaś nagroda?
Mało casu, kruca bomba...