Random game
Random game
Random demo
  • Entry name:
     Strikes 'N' Spares 
  • Category:
    Games
  • Publisher/Developer:
    BELLCOM - Public Domain Library
  • Code:
    Steve Smith
  • Controllers:
    Joystick
  • Maximum players:
    2
  • Programming language:
    Atari BASIC
Strikes 'N' Spares Strikes 'N' Spares Strikes 'N' Spares Strikes 'N' Spares Strikes 'N' Spares
Listing 1
2 REM BY:​ STEVE SMITH
3 REM 7516 BURKE ST.,​ NE
4 REM ALBUQUERQUE,​ NM 87109
5 REM
50 DIM Q$(1),​BY$(3),​PIN(10),​W$(16),​V$(50),​C$(1),​G(2,​7),​P1$(7),​P2$(7):​O=8:​RED=74:​BLUE=106:​CP=1:​F=1
60 V$="15117153151531915513155171552115711157151571915723":​POKE 711,​0
70 G(1,​7)=999:​G(2,​7)=999:​POF=1280:​BOF=1024:​PU=348:​BU=373:​BH=53248:​PH=53249:​I=10
90 POKE 709,​RED:​POKE 710,​BLUE:​GOSUB 9000:​GOSUB 8000:​GOTO 1000
100 REM
105 POKE 705,​CL:​POKE 704,​CL:​POKE BH,​BX:​POKE PH,​PX:​FOR SO=50 TO 0 STEP -1:​SOUND 0,​SO,​14,​I:​NEXT SO:​POKE 77,​0
110 SOUND 0,​0,​0,​0:​J=PB+POF:​B=PB+BOF:​S=STICK(CP-1):​FI=STRIG(CP-1):​IF FI=0 THEN 140
112 IF S<>13 AND S<>14 THEN 110
114 IF S=14 AND PY-1>32 THEN PY=PY-1
116 IF S=13 AND PY+1<76 THEN PY=PY+1
120 D=USR(PU,​J+PY,​278):​D=USR(BU,​B+PY+1,​332):​SOUND 0,​250,​O,​I:​GOTO 110
140 IF S=5 OR S=6 THEN S=7
150 IF S=9 OR S=10 THEN S=11
300 REM
305 OS=0:​RH=INT(RND(0)*10):​HP=185+INT(RH)
310 D=USR(PU,​PB+POF+PY,​314):​D=USR(BU,​PB+BOF+PY+1,​340):​D=USR(BU,​PB+BOF+PY+7,​332):​BX=BX+1:​PX=PX+1
320 POKE BH,​BX:​POKE PH,​PX:​FOR L=1 TO 30:​NEXT L
330 BX=BX-9:​PX=PX+3:​D=USR(PU,​PB+POF+PY,​296):​POKE BH,​BX:​POKE PH,​PX:​FOR L=1 TO 30:​NEXT L
340 BX=BX+12:​PX=PX+1:​D=USR(PU,​PB+POF+PY,​314):​POKE BH,​BX:​POKE PH,​PX:​FOR L=1 TO 30:​NEXT L
345 D=USR(PU,​PB+POF+PY,​278):​FOR L=1 TO 30:​NEXT L
350 D=USR(BU,​PB+BOF+PY+7,​340):​D=USR(BU,​PB+BOF+PY+I,​332):​PX=PX+1:​POKE PH,​PX:​YB=PY+I
355 SOUND 3,​220,​8,​8:​FOR B=BX TO 200:​POKE BH,​B:​IF (S=7 OR S=11) AND B>=HP THEN OS=0.5:​IF S=11 THEN OS=-0.5
356 IF YB+OS>85 OR YB+OS<43 THEN 358
357 IF OS<>0 THEN D=USR(BU,​PB+BOF+YB,​340):​D=USR(BU,​PB+BOF+YB+OS,​332):​YB=YB+OS
358 IF B=185 THEN YB=INT(YB):​YR=YB
359 NEXT B:​SOUND 3,​0,​0,​0:​POKE BH,​20
360 IF YB>48 AND YB<79 THEN 400
370 IF T=0 THEN B1=0:​GOTO 490
380 IF T=1 THEN B2=0:​GOTO 490
400 REM
401 COLOR 1:​RN=INT(RND(0)*I):​NO=0:​RV=411+YR-48
403 IF S=11 THEN RV=503+YR-51:​IF RN>4 THEN RV=503+YR-21
404 IF S=7 THEN RV=603+YR-51:​IF RN>4 THEN RV=603+YR-21
405 RESTORE RV
406 SOUND 1,​0,​0,​0:​READ V:​U=V*5-4:​IF V=99 THEN RE=INT(RND(0)*2):​IF RE=1 THEN 410
407 IF V=99 THEN 475
408 IF PIN(V)=1 THEN 406
409 VX=VAL(V$(U,​U+2)):​VY=VAL(V$(U+3,​U+4)):​PLOT VX,​VY:​DRAWTO VX+1,​VY:​PIN(V)=1:​SOUND 1,​V*I,​14,​15:​NO=NO+1:​GOTO 406
410 IF S<>7 AND S<>11 AND NO=8 THEN RESTORE 416:​GOTO 406
411 IF S<>7 AND S<>11 AND NO=9 THEN RESTORE 440:​GOTO 406
412 IF S=11 AND NO=9 THEN RESTORE 560:​GOTO 406
413 IF S=7 AND NO=9 THEN RESTORE 535:​GOTO 406
414 GOTO 475
415 REM
416 DATA 7,​99
420 DATA 4,​7,​8,​99
424 DATA 2,​4,​8,​99
428 DATA 1,​2,​3,​4,​5,​6,​8,​9,​99
432 DATA 3,​6,​9,​99
436 DATA 6,​9,​10,​99
441 DATA 10,​99
475 IF T=0 THEN B1=NO
480 IF T>0 THEN B2=NO
490 GOSUB 800:​GOSUB 700:​BX=54:​PX=49:​RETURN
500 REM
505 DATA 7,​8,​99
509 DATA 4,​7,​99
513 DATA 2,​4,​7,​8,​99
517 DATA 1,​2,​3,​4,​5,​6,​8,​9,​10,​99
521 DATA 3,​5,​9,​10,​99
525 DATA 6,​10,​99
530 DATA 10,​9,​99
535 DATA 7,​99
539 DATA 4,​7,​99
543 DATA 2,​4,​7,​99
547 DATA 1,​2,​5,​7,​8,​99
551 DATA 3,​6,​10,​99
555 DATA 6,​10,​99
560 DATA 10,​99
600 REM
605 DATA 7,​8,​99
609 DATA 4,​7,​8,​99
613 DATA 2,​4,​5,​8,​9,​99
617 DATA 1,​2,​3,​4,​5,​6,​7,​8,​9,​99
621 DATA 3,​6,​8,​9,​99
625 DATA 6,​8,​9,​99
629 DATA 10,​9,​99
635 DATA 7,​8,​99
639 DATA 4,​7,​8,​99
643 DATA 2,​4,​7,​99
647 DATA 1,​2,​5,​8,​99
651 DATA 3,​6,​9,​99
655 DATA 6,​10,​99
660 DATA 10,​9,​99
700 POKE PH,​20:​D=USR(PU,​PB+POF+PY,​260):​PY=59:​D=USR(PU,​PB+POF+PY,​278)
710 D=USR(BU,​PB+BOF+YB,​340):​D=USR(BU,​PB+BOF+PY+1,​332):​RETURN
800 REM
820 SX=29:​XX=3:​IF CP=2 THEN SX=115:​XX=12
830 IF T=0 AND B1=I THEN W$="X":​GOSUB 990:​T=1:​GOTO 870:​REM STRIKE
840 IF T=0 AND B1<I THEN W$=STR$(B1):​GOSUB 990:​GOTO 942:​REM MARK
850 IF T=1 AND B1<>I AND B1+B2=I THEN W$="/":​GOSUB 990:​GOTO 910:​REM SPARE
860 IF T=1 AND B1+B2<I THEN W$=STR$(B1+B2):​GOSUB 990:​GOTO 940:​REM MARK
865 GOTO 945
870 REM
880 IF G(CP,​2)=I AND G(CP,​3)=I THEN G(CP,​1)=G(CP,​1)+30:​GOTO 945
890 IF G(CP,​3)=11 THEN G(CP,​1)=G(CP,​1)+20:​GOTO 945
900 GOTO 960
910 REM
925 IF G(CP,​3)=I THEN G(CP,​1)=G(CP,​1)+20:​GOTO 945
927 GOTO 960
930 REM
940 IF G(CP,​3)=I THEN G(CP,​1)=G(CP,​1)+B1+B2+I
941 G(CP,​1)=G(CP,​1)+B1+B2:​GOTO 945
942 IF G(CP,​3)=11 THEN G(CP,​1)=G(CP,​1)+B1+I:​GOTO 945
943 IF G(CP,​3)=I AND G(CP,​2)=I THEN G(CP,​1)=G(CP,​1)+B1+20:​GOTO 945
944 IF T=0 THEN RETURN
945 REM
950 X=SX:​Y=66:​COLOR 0:​FOR BL=Y TO Y+7:​PLOT X,​BL:​DRAWTO X+25,​BL:​NEXT BL:​W$=STR$(G(CP,​1))
952 FOR J=1 TO LEN(W$):​C=ASC(W$(J,​J)):​A=USR(1536,​C,​CP+1,​XX+J,​Y):​NEXT J
955 IF T=0 AND B1<>I THEN 962
960 G(CP,​2)=G(CP,​3):​G(CP,​3)=B1+B2
962 IF T=1 AND B1<>I AND B1+B2=I THEN G(CP,​3)=11
965 RETURN
990 X=F-1:​Y=77:​IF CP=2 THEN Y=87
992 IF F>1 THEN X=X*2
995 C=ASC(W$):​A=USR(1536,​C,​CP+1,​X,​Y):​RETURN
1000 REM
1010 IF F>9 THEN 1060
1020 IF CP=1 THEN CL=RED:​GOSUB 100:​GOTO 1040
1030 CL=BLUE:​GOSUB 100
1040 T=T+1:​IF T=2 THEN T=0:​GOSUB 8800:​IF NP=2 THEN CP=CP+1:​IF CP=3 THEN CP=1
1045 IF T=0 AND CP=1 THEN F=F+1
1050 GOTO 1000
1060 CL=RED
1065 T=0:​IF F>I AND G(CP,​3)<I THEN 1100
1070 IF F=I THEN GOSUB 100:​T=1:​IF B1<>I THEN GOSUB 100
1072 IF F=I THEN GOSUB 8800:​F=11:​GOTO 1065
1075 IF G(CP,​3)=11 THEN F1=F:​F=10:​GOSUB 100:​GOTO 1100
1080 IF G(CP,​3)=I THEN F1=F:​F=10:​GOSUB 100:​T=1:​IF B1<>I THEN GOSUB 100
1090 F=F1+1:​IF F<13 THEN GOSUB 8800:​GOTO 1065
1100 IF NP=2 THEN CP=CP+1:​IF CP<3 THEN F=I:​CL=BLUE:​GOSUB 8800:​GOTO 1065
2000 REM
2010 P1C=PEEK(709):​P2C=PEEK(710):​FC=PEEK(712):​G(1,​4)=G(1,​4)+G(1,​1):​G(2,​4)=G(2,​4)+G(2,​1):​FOR J=1 TO 5
2015 IF G(1,​1)>G(2,​1) THEN POKE 709,​FC
2020 IF G(2,​1)>G(1,​1) THEN POKE 710,​FC
2030 IF G(1,​1)=G(2,​1) THEN POKE 709,​FC:​POKE 710,​FC
2040 FOR L=1 TO 100:​NEXT L:​POKE 709,​P1C:​POKE 710,​P2C:​FOR L=225 TO I STEP -2:​SOUND 2,​L,​8,​I:​NEXT L:​SOUND 2,​0,​0,​0
2050 NEXT J:​G(1,​5)=G(1,​5)+1:​IF NP=2 THEN G(2,​5)=G(2,​5)+1
2060 IF G(1,​1)>G(1,​6) THEN G(1,​6)=G(1,​1)
2070 IF G(1,​1)<G(1,​7) THEN G(1,​7)=G(1,​1)
2080 IF G(2,​1)<G(2,​7) THEN G(2,​7)=G(2,​1)
2090 IF G(2,​1)>G(2,​6) THEN G(2,​6)=G(2,​1)
2100 FOR L=1 TO 3:​G(1,​L)=0:​G(2,​L)=0:​NEXT L
2110 GOSUB 700
2200 GRAPHICS 0:​POSITION 11,​1:​? "NO. TOTAL HIGH LOW":​POSITION 2,​2:​? "BOWLER GAMES PINS AVG GAME GAME"
2210 POSITION 2,​5:​? P1$:​POSITION 11,​5:​? G(1,​5):​POSITION 16,​5:​? G(1,​4)
2215 POSITION 23,​5:​? INT(G(1,​4)/G(1,​5)):​POSITION 28,​5:​? G(1,​6):​POSITION 33,​5:​? G(1,​7):​IF NP=1 THEN 2230
2220 POSITION 2,​7:​? P2$:​POSITION 11,​7:​? G(2,​5):​POSITION 16,​7:​? G(2,​4)
2225 POSITION 23,​7:​? INT(G(2,​4)/G(2,​5)):​POSITION 28,​7:​? G(2,​6):​POSITION 33,​7:​? G(2,​7)
2230 POSITION I,​I:​? "ANOTHER GAME (Y/N) ";:​INPUT Q$:​IF Q$<>"Y" AND Q$<>"N" THEN 2230
2240 IF Q$="N" THEN ? CHR$(125):​END
2290 T=0:​F=1:​F1=0:​CP=1:​GOSUB 9100:​GOSUB 8000:​GOTO 1000
8000 REM
8010 COLOR 1:​PLOT 159,​50:​DRAWTO 159,​0:​DRAWTO 0,​0:​POKE 765,​1:​POSITION 0,​50:​XIO 18,​#6,​0,​0,​"S"
8020 COLOR 0:​FOR L=5 TO 8:​PLOT 15,​L:​DRAWTO 159,​L:​NEXT L:​FOR L=26 TO 29:​PLOT 15,​L:​DRAWTO 159,​L:​NEXT L
8040 W$="STRIKES N SPARES":​R=1:​FOR J=1 TO LEN(W$):​C=ASC(W$(J,​J)):​A=USR(1536,​C,​R,​J+1,​42):​R=R+1:​IF R=4 THEN R=1
8045 NEXT J
8050 GOSUB 8800:​COLOR 1:​PLOT 0,​64:​DRAWTO 159,​64:​PLOT 78,​51:​DRAWTO 78,​74:​PLOT 79,​51:​DRAWTO 79,​74
8060 PLOT 0,​75:​DRAWTO 159,​75:​PLOT 0,​86:​DRAWTO 159,​86
8070 FOR L=12 TO 144 STEP 16:​PLOT L,​75:​DRAWTO L,​85:​NEXT L
8075 IF NP=2 THEN FOR L=12 TO 144 STEP 16:​PLOT L,​86:​DRAWTO L,​95:​NEXT L:​PLOT 0,​95:​DRAWTO 159,​95
8080 W$=P1$:​FOR J=1 TO LEN(W$):​C=ASC(W$(J,​J)):​A=USR(1536,​C,​2,​J+1,​54):​NEXT J
8085 IF NP=2 THEN W$=P2$:​FOR J=1 TO LEN(W$):​C=ASC(W$(J,​J)):​A=USR(1536,​C,​3,​J+11,​54):​NEXT J
8099 BX=54:​PX=49:​RETURN
8800 REM SETUP ALL PINS
8810 COLOR 0:​FOR V=1 TO I:​U=V*5-4:​VX=VAL(V$(U,​U+2)):​VY=VAL(V$(U+3,​U+4)):​SOUND 1,​V*I,​I,​I:​PLOT VX,​VY:​DRAWTO VX+1,​VY
8820 SOUND 1,​0,​0,​0:​NEXT V:​B1=0:​B2=0
8830 FOR L=1 TO I:​PIN(L)=0:​NEXT L:​RETURN
9000 REM
9005 FOR L=1 TO 6:​G(1,​L)=0:​G(2,​L)=0:​NEXT L
9010 GRAPHICS 0:​RESTORE 9015:​FOR A=348 TO 372:​READ J:​POKE A,​J:​NEXT A
9015 DATA 104,​104,​133,​204,​104,​133,​203,​104,​133,​207,​104,​133,​206,​160,​0,​177,​206,​145,​203,​200,​192,​18,​208,​247,​96
9016 FOR A=373 TO 397:​POKE A,​PEEK(A-25):​NEXT A:​POKE 394,​8
9020 ? CHR$(125):​POSITION 10,​5:​? " '' ":​POSITION 1,​7:​? "A BOWLING GAME FOR ONE OR TWO PLAYERS"
9030 POSITION 1,​10:​? "HOW MANY PLAYERS (1 OR 2) ";
9040 INPUT NP:​IF NP<1 OR NP>2 THEN 9020
9050 POSITION 1,​12:​? "ENTER BOWLER #1 NAME (MAX 7) ";:​INPUT P1$:​IF LEN(P1$)<1 OR LEN(P1$)>7 THEN 9000
9055 IF NP=1 THEN 9080
9060 POSITION 1,​14:​? "ENTER BOWLER #2 NAME (MAX 7) ";:​INPUT P2$:​IF LEN(P2$)<1 OR LEN(P2$)>7 THEN RUN
9070 POSITION 1,​16:​? P1$;"'S BOWLER IS RED (TOP LINE)":​POSITION 1,​17:​? P2$;"'S BOWLER IS BLUE (BOTTOM LINE)"
9080 POSITION 1,​19:​? "PRESS THE  KEY TO BEGIN THE GAME ";:​POKE 53279,​0
9090 IF PEEK(53279)<>6 THEN 9090
9100 REM
9110 GRAPHICS 23:​POKE 708,​30:​POKE 709,​RED:​POKE 710,​BLUE:​COLOR 1:​PLOT 45,​0:​DRAWTO 115,​95:​PLOT 115,​0:​DRAWTO 45,​95
9112 PLOT 33,​46:​DRAWTO 40,​38:​PLOT 40,​46:​DRAWTO 33,​38:​PLOT 120,​46:​DRAWTO 127,​38:​PLOT 127,​46:​DRAWTO 120,​38
9113 PLOT 78,​79:​DRAWTO 85,​72:​PLOT 78,​22:​DRAWTO 85,​15
9117 RESTORE 9150:​FOR L=260 TO 347:​READ J:​POKE L,​J:​NEXT L
9120 PY=59:​A=PEEK(106)-32:​POKE 54279,​A:​PB=256*A:​POKE 559,​62:​POKE 53277,​3:​POKE 53256,​0:​POKE 623,​1
9130 FOR J=PB+BOF TO PB+1535:​POKE J,​0:​SOUND 2,​J-1024,​2,​6:​NEXT J:​SOUND 2,​0,​0,​0:​POKE PH,​20
9135 R=0:​FOR L=PB+POF+PY TO PB+1297+PY:​POKE L,​PEEK(278+R):​R=R+1:​NEXT L
9140 R=0:​FOR L=PB+BOF+PY+1 TO PB+1031+PY+1:​POKE L,​PEEK(332+R):​R=R+1:​NEXT L:​? #6;CHR$(125)
9145 RESTORE 9200:​FOR L=0 TO 252:​READ J:​POKE 1536+L,​J:​POKE 712,​L:​SOUND 2,​L,​14,​6:​NEXT L:​SOUND 2,​0,​0,​0:​POKE 712,​0:​RETURN
9150 DATA 0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0,​0
9155 DATA 0,​120,​248,​252,​248,​112,​249,​254,​248,​248,​248,​248,​220,​204,​204,​204,​238,​0
9160 DATA 0,​30,​62,​63,​62,​28,​62,​62,​62,​126,​190,​62,​54,​54,​246,​246,​135,​0
9170 DATA 0,​120,​248,​252,​248,​112,​248,​248,​248,​252,​250,​249,​216,​216,​204,​204,​238,​0
9180 DATA 0,​14,​31,​31,​31,​31,​14,​0,​0,​0,​0,​0,​0,​0,​0,​0
9200 DATA 104,​240,​10,​201,​4,​240,​11,​170,​104,​104,​202,​208,​251,​169,​253,​76,​164,​246,​104,​133,​195,​104,​201,​128
9210 DATA 144,​4,​41,​127,​198,​195,​170,​141,​250,​6,​224,​96,​176,​15,​169,​64,​224,​32,​144,​2,​169,​224,​24,​109,​250,​6,​141,​250,​6,​104
9220 DATA 104,​141,​251,​6,​104,​104,​141,​252,​6,​14,​252,​6,​104,​104,​141,​253,​6,​133,​186,​166,​87,​169,​10,​224,​3,​240,​8,​169,​20,​224
9230 DATA 5,​240,​2,​169,​40,​133,​207,​133,​187,​165,​88,​133,​203,​165,​89,​133,​204,​32,​228,​6,​24,​173,​252,​6,​101,​203,​133,​203,​144,​2
9240 DATA 230,​204,​24,​165,​203,​101,​212,​133,​203,​165,​204,​101,​213,​133,​204,​173,​250,​6,​133,​187,​169,​8,​133,​186,​32,​228,​6,​165
9250 DATA 212,​133,​205,​173,​244,​2,​101,​213,​133,​206,​160,​0,​162,​8,​169,​0,​133,​208,​133,​209,​177,​205,​69,​195,​72,​104,​10,​72,​144
9260 DATA 8,​24,​173,​251,​6,​5,​208,​133,​208,​224,​1,​240,​8,​6,​208,​38,​209,​6,​208,​38,​209,​202,​208,​228,​104,​152,​72,​160,​0,​165,​209
9270 DATA 145,​203,​200,​165,​208,​145,​203,​104,​168,​24,​165,​203,​101,​207,​133,​203,​144,​2,​230,​204,​200,​192,​8,​208,​183,​96
9280 DATA 169,​0,​133,​212,​162,​8,​70,​186,​144,​3,​24,​101,​187,​106,​102,​212,​202,​208,​243,​133,​213,​96,​0,​1,​28
9999 END	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!