1

Temat: Prima-Aprilis 2015

Aby tradycji stało się zadość ;)
Dla przypomnienia: http://www.atari.org.pl/forum/viewtopic.php?id=4872
Edycja 2015:
1. Piszemy tylko w Atari Basic (USR dozwolony, ale kod musi dać się wprowadzić w AB)
2. Wersja ostateczna - za taką uważamy wersję opublikowaną przed godziną 23:59 w dniu 01.04.2015
3. Przypominam - nie kasujemy, dopisujemy kod. Drobne modyfikacje dozwolone
4. W nawiasach kwadratowych - kod pisany w inwersie
5. W liniach 0-9 wpisujemy autorów zabawy
6. Życzę miłej zabawy

0 REM PRIMA-APRILIS 2015 COMPO
1 REM AUTORZY SIKOR
10 GOSUB 1000
99 END 
1000 GRAPHICS 24:POKE 710,0:POKE 709,15:COLOR 1:DEG 
1001 FOR I=0 TO 359:X=INT(10*SIN(I*COS(I))*20):Y=INT(10*COS(I)*SIN(I*2)*20)
1002   IF X<0 THEN X=-X
1003   IF Y<0 THEN Y=-Y
1004   PLOT X,Y:PLOT 319-X,191-Y:PLOT X,191-Y:PLOT 319-X,Y:NEXT I
1005 RETURN 
Sikor umarł...

2

Odp: Prima-Aprilis 2015

0 REM PRIMA-APRILIS 2015 COMPO
1 REM AUTORZY SIKOR, SEBAN
10 GOSUB 1000: REM SINE PLOTS
11 GOSUB 1010: REM SIERPINSKI TRIANGLE
99 GOTO 99: REM INF. LOOP 
999 REM --- SINE PLOTS ---
1000 GRAPHICS 24:POKE 710,0:POKE 709,15:COLOR 1:DEG 
1001 FOR I=0 TO 359:X=INT(10*SIN(I*COS(I))*20):Y=INT(10*COS(I)*SIN(I*2)*20)
1002   IF X<0 THEN X=-X
1003   IF Y<0 THEN Y=-Y
1004   PLOT X,Y:PLOT 319-X,191-Y:PLOT X,191-Y:PLOT 319-X,Y:NEXT I
1005 RETURN 
1009 REM -- SLOW SIERPINSKI ---
1010 FOR I=0 TO 15:POKE 709,15-I:POKE 710,I:POKE 712,I:NEXT I:PUT #6,125:COLOR 1
1011 PX=0:PY=191:FOR I=1 TO 2048:R=INT(RND(0)*3):PLOT PX,PY
1012 IF R=0 THEN PX=PX/2:PY=(PY+191)/2:GOTO 1015
1013 IF R=1 THEN PX=(PX+319)/2:PY=(PY+191)/2:GOTO 1015
1014 PX=(PX+160)/2:PY=PY/2
1015 NEXT I:RETURN

Ostatnio edytowany przez seban (2015-04-01 13:26:02)

3

Odp: Prima-Aprilis 2015

Dodałem linie 12 i 1100-1140

0 REM PRIMA-APRILIS 2015 COMPO
1 REM AUTORZY SIKOR, SEBAN, BLUKI
10 GOSUB 1000:REM SINE PLOTS
11 GOSUB 1010:REM SIERPINSKI TRIANGLE
12 GOSUB 1100
99 GOTO 99:REM INF. LOOP
999 REM --- SINE PLOTS ---
1000 GRAPHICS 24:POKE 710,0:POKE 709,15:COLOR 1:DEG
1001 FOR I=0 TO 359:X=INT(10*SIN(I*COS(I))*20):Y=INT(10*COS(I)*SIN(I*2)*20)
1002 IF X<0 THEN X=-X
1003 IF Y<0 THEN Y=-Y
1004 PLOT X,Y:PLOT 319-X,191-Y:PLOT X,191-Y:PLOT 319-X,Y:NEXT I
1005 RETURN
1009 REM -- SLOW SIERPINSKI ---
1010 FOR I=0 TO 15:POKE 709,15-I:POKE 710,I:POKE 712,I:NEXT I:PUT #6,125:COLOR 1
1011 PX=0:PY=191:FOR I=1 TO 2048:R=INT(RND(0)*3):PLOT PX,PY
1012 IF R=0 THEN PX=PX/2:PY=(PY+191)/2:GOTO 1015
1013 IF R=1 THEN PX=(PX+319)/2:PY=(PY+191)/2:GOTO 1015
1014 PX=(PX+160)/2:PY=PY/2
1015 NEXT I:RETURN
1100 PUT #6,125:COLOR 1:FOR I=15 TO 0 STEP -0.1:SETCOLOR 2,0,I:POKE 712,PEEK(710):NEXT I
1110 FOR I=0 TO 8 STEP 0.1:SETCOLOR 2,14,I:POKE 712,PEEK(710):NEXT I
1120 PLOT 140,32:FOR R=-90 TO -16 STEP 2:FOR I=0 TO 360 STEP 10
1130 DRAWTO 160+COS(I-R)*(R-45),8+SQR(ABS(I+R)*(R+96)):NEXT I:NEXT R
1140 RETURN

4

Odp: Prima-Aprilis 2015

0 REM PRIMA-APRILIS 2015 COMPO
1 REM AUTORZY SIKOR, SEBAN, BLUKI
10 GOSUB 1000:REM SINE PLOTS
11 GOSUB 1010:REM SIERPINSKI TRIANGLE
12 GOSUB 1100: REM SINE DRAWS
13 GOSUB 2000: REM SIERPINSKI AGAIN
99 GOTO 99:REM INF. LOOP
999 REM --- SINE PLOTS / SIKOR ---
1000 GRAPHICS 24:POKE 710,0:POKE 709,15:COLOR 1:DEG
1001 FOR I=0 TO 359:X=INT(10*SIN(I*COS(I))*20):Y=INT(10*COS(I)*SIN(I*2)*20)
1002 IF X<0 THEN X=-X
1003 IF Y<0 THEN Y=-Y
1004 PLOT X,Y:PLOT 319-X,191-Y:PLOT X,191-Y:PLOT 319-X,Y:NEXT I
1005 RETURN
1009 REM -- SLOW SIERPINSKI / SEBAN ---
1010 FOR I=0 TO 15:POKE 709,15-I:POKE 710,I:POKE 712,I:NEXT I:PUT #6,125:COLOR 1
1011 PX=0:PY=191:FOR I=1 TO 2048:R=INT(RND(0)*3):PLOT PX,PY
1012 IF R=0 THEN PX=PX/2:PY=(PY+191)/2:GOTO 1015
1013 IF R=1 THEN PX=(PX+319)/2:PY=(PY+191)/2:GOTO 1015
1014 PX=(PX+160)/2:PY=PY/2
1015 NEXT I:RETURN
1099 REM --- SINE DRAWS / BLUKI ---
1100 PUT #6,125:COLOR 1:FOR I=15 TO 0 STEP -0.1:SETCOLOR 2,0,I:POKE 712,PEEK(710):NEXT I
1110 FOR I=0 TO 8 STEP 0.1:SETCOLOR 2,14,I:POKE 712,PEEK(710):NEXT I
1120 PLOT 140,32:FOR R=-90 TO -16 STEP 2:FOR I=0 TO 360 STEP 10
1130 DRAWTO 160+COS(I-R)*(R-45),8+SQR(ABS(I+R)*(R+96)):NEXT I:NEXT R
1140 RETURN
1999 REM --- SIERPINSKI AGAIN / SEBAN ---
2000 T=PEEK(106)-4:POKE 106,T:GRAPHICS 16:POKE 752,1:? :FNT=T*256:POKE 710,128:POKE 712,128:POKE 709,15:POKE 77,0
2001 DATA 104,104,104,133,212,104,104,37,212,133,212,169,0,133,213,96,128,64,32,16,8,4,2,1
2002 RESTORE 2001:FOR I=1536 TO 1551:READ D:POKE I,D:NEXT I:I=0:PTR=PEEK(88)+256*PEEK(89)
2003 FOR I=0 TO 7:READ D:POKE FNT+512+I,D:NEXT I:I=0
2008 FOR DY=0 TO 23 STEP 8
2009 FOR DX=0 TO 39 STEP 8
2010 FOR X=0 TO 7:FOR Y=0 TO 7
2020 POKE PTR+(Y+DY)*40+X+DX,Y+X*8
2031 IF I<512 THEN POKE FNT+I,0:POKE FNT+512+I,PEEK(FNT+512+Y):I=I+1
2040 NEXT Y:NEXT X:NEXT DX:NEXT DY
2052 POKE 756,T
2061 FOR X=0 TO 63:FOR Y=0 TO 63
2062 IF USR(1536,X,Y)=0 THEN PTR=FNT+Y+64*INT(X/8):POKE PTR,PEEK(PTR)+PEEK(FNT+512+X)
2063 NEXT Y:NEXT X
2070 FOR I=64 TO 255 STEP 4: FOR J=255 TO I STEP -I/8: SOUND 0,J,10,J/15:POKE 709,PEEK(53770): NEXT J:NEXT I
2071 SOUND 0,0,0,0: POKE 709,128:POKE 756,224:POKE 106,T+4:GRAPHICS 0
2072 POKE 710,128:POKE 712,128:POKE 709,15:POKE 752,1:? ":)":RETURN

Ostatnio edytowany przez seban (2015-04-01 21:51:19)

5

Odp: Prima-Aprilis 2015

i jeszcze jeden prymitywny efekt...

0 REM PRIMA-APRILIS 2015 COMPO
1 REM AUTORZY SIKOR, SEBAN, BLUKI
10 GOSUB 1000:REM SINE PLOTS
11 GOSUB 1010:REM SIERPINSKI TRIANGLE
12 GOSUB 1100: REM SINE DRAWS
13 GOSUB 2000: REM SIERPINSKI AGAIN
14 GOSUB 3000: REM XOR-OR ANIMATION
99 GOTO 99:REM INF. LOOP
999 REM --- SINE PLOTS / SIKOR ---
1000 GRAPHICS 24:POKE 710,0:POKE 709,15:COLOR 1:DEG
1001 FOR I=0 TO 359:X=INT(10*SIN(I*COS(I))*20):Y=INT(10*COS(I)*SIN(I*2)*20)
1002 IF X<0 THEN X=-X
1003 IF Y<0 THEN Y=-Y
1004 PLOT X,Y:PLOT 319-X,191-Y:PLOT X,191-Y:PLOT 319-X,Y:NEXT I
1005 RETURN
1009 REM -- SLOW SIERPINSKI / SEBAN ---
1010 FOR I=0 TO 15:POKE 709,15-I:POKE 710,I:POKE 712,I:NEXT I:PUT #6,125:COLOR 1
1011 PX=0:PY=191:FOR I=1 TO 2048:R=INT(RND(0)*3):PLOT PX,PY
1012 IF R=0 THEN PX=PX/2:PY=(PY+191)/2:GOTO 1015
1013 IF R=1 THEN PX=(PX+319)/2:PY=(PY+191)/2:GOTO 1015
1014 PX=(PX+160)/2:PY=PY/2
1015 NEXT I:RETURN
1099 REM --- SINE DRAWS / BLUKI ---
1100 PUT #6,125:COLOR 1:FOR I=15 TO 0 STEP -0.1:SETCOLOR 2,0,I:POKE 712,PEEK(710):NEXT I
1110 FOR I=0 TO 8 STEP 0.1:SETCOLOR 2,14,I:POKE 712,PEEK(710):NEXT I
1120 PLOT 140,32:FOR R=-90 TO -16 STEP 2:FOR I=0 TO 360 STEP 10
1130 DRAWTO 160+COS(I-R)*(R-45),8+SQR(ABS(I+R)*(R+96)):NEXT I:NEXT R
1140 RETURN
1999 REM --- SIERPINSKI AGAIN / SEBAN ---
2000 T=PEEK(106)-4:POKE 106,T:GRAPHICS 16:POKE 752,1:? :FNT=T*256:POKE 710,128:POKE 712,128:POKE 709,15:POKE 77,0
2001 DATA 104,104,104,133,212,104,104,37,212,133,212,169,0,133,213,96,128,64,32,16,8,4,2,1
2002 RESTORE 2001:FOR I=1536 TO 1551:READ D:POKE I,D:NEXT I:I=0:PTR=PEEK(88)+256*PEEK(89)
2003 FOR I=0 TO 7:READ D:POKE FNT+512+I,D:NEXT I:I=0
2008 FOR DY=0 TO 23 STEP 8
2009 FOR DX=0 TO 39 STEP 8
2010 FOR X=0 TO 7:FOR Y=0 TO 7
2020 POKE PTR+(Y+DY)*40+X+DX,Y+X*8
2031 IF I<512 THEN POKE FNT+I,0:POKE FNT+512+I,PEEK(FNT+512+Y):I=I+1
2040 NEXT Y:NEXT X:NEXT DX:NEXT DY
2052 POKE 756,T
2061 FOR X=0 TO 63:FOR Y=0 TO 63
2062 IF USR(1536,X,Y)=0 THEN PTR=FNT+Y+64*INT(X/8):POKE PTR,PEEK(PTR)+PEEK(FNT+512+X)
2063 NEXT Y:NEXT X
2070 FOR I=64 TO 255 STEP 4: FOR J=255 TO I STEP -I/8: SOUND 0,J,10,J/15:POKE 709,PEEK(53770): NEXT J:NEXT I
2071 SOUND 0,0,0,0: POKE 709,128:POKE 756,224:POKE 106,T+4:GRAPHICS 0
2072 POKE 710,128:POKE 712,128:POKE 709,15:POKE 752,1:? ":)":RETURN
2999 REM --- XOR-OR EFFECTS / SEBAN ---
3000 FOR I=15 TO 0 STEP -0.05:SOUND 0,128,8,I:NEXT I:RESTORE 3001:FOR I=1552 TO 1567:READ D:POKE I,D:NEXT I
3001 DATA 104,104,104,133,212,104,104,69,212,133,212,169,0,133,213,96
3002 GRAPHICS 9
3003 FOR X=0 TO 63:FOR Y=0 TO 47
3004 C=USR(1552,X,Y):IF USR(1536,C,15)=0 THEN C=1
3005 COLOR C:PLOT 8+X,Y*4:DRAWTO 8+X,Y*4+3
3006 NEXT Y:NEXT X
3007 FOR J=0 TO 1:FOR I=0 TO 255:POKE 20,0
3008 IF PEEK(20)<4 THEN 3008
3009 POKE 712,I:NEXT I
3010 GRAPHICS 11+32:NEXT J
3011 RETURN

Ostatnio edytowany przez seban (2015-04-01 21:50:16)

6

Odp: Prima-Aprilis 2015

Załączam plik BAS, bo znaki z CONTROL nie chcą się wyświetlać  :(  :(  :(
Przesunąłem GOSUB 3000 z linii 14 na 15, a w linii 14 wciąłem się ze swoim podprogramem (linie 2500-2518). Inaczej efekt by nie pasował.
Mam nadzieję, że jest to zgodne z regulaminem.

Post's attachments

PA2015.BAS 3.77 kb, liczba pobrań: 5 (od 2015-04-01) 

Tylko zalogowani mogą pobierać załączniki.

7

Odp: Prima-Aprilis 2015

No i wyszła ładna graficznie praca ;) Blukiemu i Sebanowi dziękuję za uczestnictwo i zapraszam za rok. Szkoda, że innym nie chciało się ruszyć d... szarych komórek... :/
Załączam plik w formacie MyDOSa w średniej gęstości - uruchamiać z BASICiem ;) Aha, dla niecierpliwych - załączona również wersja skompilowana kompilerem do TB ;)

Ostatnio edytowany przez Sikor (2015-04-02 08:54:50)

Post's attachments

aprilis_2015.atr 130.02 kb, liczba pobrań: 19 (od 2015-04-02) 

Tylko zalogowani mogą pobierać załączniki.
Sikor umarł...

8

Odp: Prima-Aprilis 2015

Piękne! Żałuję, że w tym roku nie mogłem wziąć udziału w PAC :/ No nic - będę musiał poczekać do następnej edycji.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

9

Odp: Prima-Aprilis 2015

Podziękowania dla organizatora za  zorganizowanie konkursu :)

10

Odp: Prima-Aprilis 2015

A dziękuję, to tradycja jest już. Choć z przykrością stwierdzam, że z roku na rok coraz mniej uczestników, powoli zaczynam się zastanawiać, czy nie zrezygnować (jak z konkursów sikora)...

Sikor umarł...

11

Odp: Prima-Aprilis 2015

W tym roku wypadło tuż przed świętami i niektórzy pewnie zamiast klawiatury musieli obsługiwać paddle... eee... trzepaczkę do dywanów :D

12

Odp: Prima-Aprilis 2015

15 ściągnięć nie rokuje zbyt dobrze na przyszłość...

Sikor umarł...

13

Odp: Prima-Aprilis 2015

Sikorku, spokojnie... Dodałem do paczki na AOL, więc łączna liczba ściągnięć będzie dużo większa niż 15. :)

Powszechnie wiadomo, że kamień potrafi myśleć. Na tym fakcie opiera się cała elektronika.

Terry Pratchett - Równoumagicznienie