Wednesday, February 20, 2013

Shared Program (9)

Iterative Graphics Fractal by Frank:
Here is a fun program that i wrote to explore iterative fractal graphics based on A. K. Dewdney's algorithms in Scientific American magazine. It is a fully interactive program. Tap up / down/ left/ right/ center of screen to adjust view and change patterns. Tap and drag to move patterns around on screen. Left/right tap generates new random patterns. Up/down tap zooms in/out. Center tap resets pattern. Works in portrait mode using iPhone retina mode screen 2 (640x920).

10 REM -- FRACTAL FUN --
20 GOSUB 4000
100 REM -MAIN LOOP-
101 POKE TAP,0
102 IF PEEK(TAP)=1 THEN 1000
103 IF PEEK(TAP)=2 THEN 500
110 X1=(SC*X)+MX
120 IF X1<0 OR X1>WIDTH THEN 160
130 Y1=(SC*Y)+MY
140 IF Y1<0 OR Y1>HEIGHT THEN 160
150 PSET X1,Y1,C1
160 CNT=CNT+1:IF CNT<300 GOTO 200
180 CNT = 0
190 C1=C1+1:IF C1>15 THEN C1=0
200 REM XX=Y-SQR(ABS(B*X-C))
202 XX = Y - SGN(X) * SQR(ABS(B * X - C))
210 YY = A - X
220 X = XX
230 Y = YY
240 GOTO 102
245 REM ---------------
500 REM TAP DRAG
501 MX=FN PK(XT) : MY=FN PK(YT)
503 X=0:Y=0:CNT=0:C1=0
504 RECT 0,0,WIDTH,HEIGHT,4
510 GOTO 100
1000 REM ---------------
1010 REM SCREEN WAS TAPPED
1020 XS=FN PK(XT) : YS=FN PK(YT)
1025 ALERT 2
1040 IF YS<(H2-CTR) THEN 1120
1050 IF YS>(H2+CTR) THEN 1150
1060 IF XS<(W2-CTR) THEN 1180
1070 IF XS>(W2+CTR) THEN 1185
1080 REM IN SCREEN CENTER
1090 A=3.14:B=3.2:C=6.28
1100 SC=15
1105 CIRCLE W2,H2,50,1,0:SLEEP 25
1110 GOTO 1190
1120 REM ZOOM IN
1122 DRAW "BM320,300C1R25U100R50H106G106R50D100R25":SLEEP 30
1125 SC=SC+3
1130 IF SC>100 THEN 1135
1131 GOTO 1190
1135 ALERT 5:SC=100:GOTO 1190
1150 REM ZOOM OUT
1152 DRAW "BM320,700C1R25D100R50G106H106R50U100R25":SLEEP 30
1155 SC=SC-3
1160 IF SC<1 THEN 1175
1170 GOTO 1190
1175 ALERT 5:SC=1:GOTO 1190
1180 REM RANDOM SEEDS
1181 DRAW "BM200,460C1U25L100U50G106F106U50R100U25":SLEEP 30
1182 GOTO 1189
1185 DRAW "BM440,460C1U25R100U50F106G106U50L100U25":SLEEP 30
1189 A=RND(TI)*6:B=RND(TI)*5:C=RND(TI)*6.28
1190 REM CLEAR SCREEN & VARS
1200 RECT 0,0,WIDTH,HEIGHT,4
1210 X=0:Y=0:CNT=0:C1=0
1220 GOTO 100
1230 REM -------------------
4000 REM SET UP SCREEN
4010 SCREEN 2:CLS
4020 TITLE "Fractal Fun"
4030 WIDTH=640:HEIGHT=920
4040 W2=WIDTH/2:H2=HEIGHT/2
4042 MX=W2:MY=H2
4045 CTR =180
4050 RECT 0,0,WIDTH,HEIGHT,4
4060 DEF FN PK(A)=PEEK(A)+PEEK(A+1)*256
4070 XT=1030:YT=1032:TAP=1024
4080 A=3.14:B=3.2:C=6.28
4090 X=0:Y=0:CNT=0:C1=0:SC=15
4100 LSET 3,0 REM PIXEL SIZE
4110 RETURN

Tuesday, February 19, 2013

Shared Program (8)


Game made by Sergio Menegon. Works for iPad in Portrait.

10 SCREEN 1:CLS
20 G=25
30 VX=10:VY=0:X=400:Y=200:DT=0.1:R2=60:R1=10
35 LX=100:HX=600:LY=100:HY=1000:GR=800
40 AT=2.5:WC=15:PC=WC:SP=100:DF=1.5:PU=0:BC=1.2
50 OK=0:VI=3:PV=20:RB=0:RV=2:EV$="":R=R2
1000 REM -----------------------
1010 REM MAIN CICLE
1020 REM -----------------------
1045 REM COLLISION DETECTION
1050 IF Y+R>GR THEN GOSUB 15000
1055 IF Y-R<LY THEN GOSUB 15500
1060 IF (X-R<LX OR X+R>HX) THEN GOSUB 17000
1065 VY=VY+(G-SGN(VY)*AT)*DT
1068 Y=Y+VY*DT:X=X+VX*DT
1070 BEGINFRAME:CLS
1080 LINE LX,GR,HX,GR,9
1082 FRAME LX,LY,HX,HY,1
1085 LINE LX,GR-BC*2*R,HX,GR-BC*2*R,16:REM BONUS
1090 CIRCLE X,Y,R,8,1
1100 IF PC>0 THEN PC=PC-1:GOSUB 13000
1105 GPRINT "Bonus line",LX,GR-BC*2*R-10,1
1110 GPRINT "Good! :"+STR$(OK),LX,GR+R2+30,16
1115 GPRINT "Bad! :"+STR$(RB),LX,GR+R2+60,16
1120 GPRINT "Life :"+STR$(VI),LX,GR+R2+90,16
1130 GPRINT "Score :"+STR$(PU),LX,GR+R2+120,1
1210 ENDFRAME
1990 GOSUB 10000
1999 GOTO 1000
10000 REM -----------------------------
10001 REM TAP DETECT: OUT IN XT E YT
10002 REM ----------------------------
10030 XT=PEEK(1030)+256*PEEK(1031)
10040 YT=PEEK(1032)+256*PEEK(1033)
10045 PK=PEEK(1024)
10050 IF PK=1 THEN POKE 1024,0:PK=0:GOSUB 12000
10999 RETURN
12000 REM ------------------------
12010 REM TAP POSITION ANALISYS
12020 REM ------------------------
12030 DX=XT-X:DY=YT-Y
12040 DS=SQR(DX^2+DY^2)
12050 IF DS<R THEN GOSUB 14000
12999 RETURN
13000 REM ------------------------
13010 REM PRINT EVENT
13020 REM ------------------------
13025 IF Y-R<0 THEN RETURN
13030 GPRINT EV$,X+R,Y-R,1
13100 RETURN
14000 REM ------------------------
14010 REM TAP OK!
14020 REM ------------------------
14030 PC=5:EV$="Good!"
14040 VY=-SP
14050 VX=-DF*DX
14060 OK=OK+1:R=R-2:PU=PU+10
14065 IF R<R1 THEN R=R1:G=G+1
14070 IF OK>PV THEN VI=VI+1:OK=0:EV$="Good! (+1 life)"
14080 IF Y>GR-BC*2*R+R THEN EV$=EV$+" BONUS SCORE (+100)! ":PU=PU+100:PC=25
14999 RETURN
15000 REM ------------------------
15010 REM GROUND
15020 REM ------------------------
15100 VY=-VY+AT:Y=GR-R-1
15105 PC=25:EV$="Very Bad! (-1 life)":OK=0
15110 VI=VI-1
15120 IF VI=0 GOTO 16000: REM GAME OVER
15499 RETURN
15500 REM ------------------------
15510 REM TOP
15520 REM ------------------------
15530 Y=LY+R: VY=-VY
15540 PC=25:EV$="Too high! (-1 life)":OK=0
15550 VI=VI-1
15560 IF VI=0 GOTO 16000: REM GAME OVER
15999 RETURN
16000 REM ------------------------
16010 REM GAME OVER
16020 REM ------------------------
16030 GPRINT "GAME OVER",(HX-LX)/2,(HY-LY)/2,16
16035 GPRINT "Score:"+STR$(PU),(HX-LX)/2,(HY-LY)/2+30,1
16040 SLEEP 2000
16050 SCREEN 0:CLS
16060 INPUT "Play again (y/n)";R$
16070 IF R$="y" OR R$="Y" THEN GOTO 10
16080 CLS: PRINT "Ok, bye!"
16090 PRINT "Written by Sergio Menegon - Italy"
16100 END
17000 REM ------------------------
17001 REM BORDER
17005 REM ------------------------
17010 VX=-VX:RB=RB+1:PC=10:EV$="Bad!":OK=0
17020 IF RB>RV THEN VI=VI-1:RB=0:EV$="Bad (-1 life):pc=25
17030 IF VI=0 GOTO 16000: REM GAME OVER
17999 RETURN


Monday, February 18, 2013

News (2)

Video by FlyingInHD


If you like to share your video, send email containing your video's YouTube link to:
hawwash [dot] soft [at] gmail [dot] com