Random game
Random demo
Random game
  • Entry name:
     Concentration 
  • Category:
    Games
  • Publisher/Developer:
    BELLCOM - Public Domain Library
  • Code:
    Jerry Aamodt
  • Controllers:
    Joystick
  • Maximum players:
    2
  • Programming language:
    Atari BASIC
Concentration Concentration Concentration Concentration Concentration Concentration Concentration Concentration Concentration
Listing 1
1 REM CONCENTRATION GAME FOR PRE-SCHOOLERS by J AAMODT
2 REM Courtesy of MACE
5 GRAPHICS 1:​? #6;"  ":​? #6;"  ":​? #6;"  "
10 ? #6;"  ":​? #6;"  ":​? #6;"  ":​? #6;" ":​? #6;"  "
15 ? #6;"  ":​? #6;"  ":​? #6;"  ":​? #6;"  ":​? #6;"   "
20 ? #6:​? #6:​? #6;" JERRY AAMODT"
95 GOSUB 8000
100 OLDX=10:​OLDY=8:​NX=10:​NY=8:​COUNT=0:​X=1:​Y=1:​POKE 77,​0:​XS=1:​YS=1
110 COLOR 1:​PLOT NX-1,​NY-1:​DRAWTO NX+1,​NY-1:​DRAWTO NX+1,​NY+1:​DRAWTO NX-1,​NY+1:​DRAWTO NX-1,​NY-1:​POKE 656,​2
115 POKE 657,​1:​? NM1$;" ";SC(0):​POKE 656,​2:​POKE 657,​25:​? NM2$;" ";INT(SC(1)):​IF PL=1 AND CO=1 THEN 1100
200 S=STICK(PL):​IF A(X,​Y)=0 THEN 210
203 LOCATE OLDX,​OLDY,​Z:​IF Z<>0 THEN 210
205 IF STRIG(PL)<>1 THEN COUNT=COUNT+1:​GOSUB 400:​X=OLDX:​Y=OLDY:​GOSUB 600:​GOTO 245
210 IF S=15 THEN 200
220 GOSUB 500+S
245 IF COUNT=2 AND PL=0 THEN PL=1:​GOTO 100
250 IF COUNT=2 AND PL=1 THEN PL=0:​GOTO 100
260 IF COUNT>2 THEN 100
299 GOTO 200
400 RESTORE 800:​FOR K=1 TO A(X,​Y):​READ LIN,​REPS,​MULT:​NEXT K:​IF RND(0)>HOWSMART THEN SMRT(X,​Y)=A(X,​Y)
405 RETURN
505 X=X+1:​Y=Y+1:​GOTO 540
506 X=X+1:​Y=Y-1:​GOTO 540
507 X=X+1:​GOTO 540
509 Y=Y+1:​X=X-1:​GOTO 540
510 Y=Y-1:​X=X-1:​GOTO 540
511 X=X-1:​GOTO 540
513 Y=Y+1:​GOTO 540
514 Y=Y-1
540 IF X>8 THEN X=8
545 IF X<1 THEN X=1
550 IF Y>5 THEN Y=5
555 IF Y<1 THEN Y=1
560 NX=(20*X)-10:​NY=(16*Y)-8:​XS=X:​YS=Y
561 COLOR 0:​PLOT OLDX-1,​OLDY-1:​DRAWTO OLDX+1,​OLDY-1:​DRAWTO OLDX+1,​OLDY+1
562 DRAWTO OLDX-1,​OLDY+1:​DRAWTO OLDX-1,​OLDY-1
565 COLOR 1:​PLOT NX-1,​NY-1:​DRAWTO NX+1,​NY-1:​DRAWTO NX+1,​NY+1:​DRAWTO NX-1,​NY+1:​DRAWTO NX-1,​NY-1
570 OLDX=NX:​OLDY=NY:​RETURN
600 RESTORE LIN:​COLOR 1:​FOR J1=1 TO REPS:​READ X1,​Y1,​X2,​Y2:​PLOT X+X1,​Y+Y1:​DRAWTO X+X2,​Y+Y2:​NEXT J1
605 COLOR 2:​FOR J1=1 TO MULT:​READ X1,​Y1,​X2,​Y2:​PLOT X+X1,​Y+Y1:​DRAWTO X+X2,​Y+Y2:​NEXT J1:​X=XS:​Y=YS:​COLOR 1
675 C(COUNT,​1)=X:​C(COUNT,​2)=Y:​IF COUNT=1 THEN RETURN
680 IF A(C(1,​1),​C(1,​2))=A(C(2,​1),​C(2,​2)) THEN SC(PL)=SC(PL)+1:​GOTO 700
685 FOR J=1 TO 2:​FOR I=1 TO 15:​POSITION (20*C(J,​1))-19,​(16*C(J,​2))-I:​? #6;" ":​NEXT I:​NEXT J
690 RETURN
700 A(C(1,​1),​C(1,​2))=0:​A(C(2,​1),​C(2,​2))=0:​SMRT(C(1,​1),​C(1,​2))=0:​SMRT(C(2,​1),​C(2,​2))=0
705 SC(PL)=SC(PL)+1:​IF PL=1 THEN 720
710 FOR J=1 TO 2:​FOR I=1 TO 15:​POSITION (20*C(J,​1))-19,​(16*C(J,​2))-I:​? #6;"1111111111111111111":​NEXT I:​NEXT J
715 GOTO 725
720 FOR J=1 TO 2:​FOR I=1 TO 15:​POSITION (20*C(J,​1))-19,​(16*C(J,​2))-I:​? #6;"3333333333333333333":​NEXT I:​NEXT J
725 TOT=TOT+2:​IF TOT=40 THEN 9500
730 COUNT=3:​RETURN
800 DATA 6010,​3,​2,​6020,​4,​8,​6030,​4,​10,​6040,​12,​2,​6050,​6,​5,​6060,​6,​5,​6070,​7,​6,​6080,​10,​7,​6090,​11,​3,​6100,​3,​9
1100 X=INT(8*RND(0)+1):​Y=INT(5*RND(0)+1):​IF A(X,​Y)=0 THEN 1100
1105 IF X=C(1,​1) AND Y=C(1,​2) THEN 1100
1110 COUNT=COUNT+1:​GOSUB 400:​XS=X:​YS=Y:​X=(X*20)-10:​Y=(Y*16)-8:​GOSUB 600
1150 IF COUNT=1 THEN 1200
1185 IF COUNT>2 THEN 100
1190 IF COUNT=2 THEN PL=0:​GOTO 100
1200 FOR I=1 TO 8:​FOR J=1 TO 5:​IF COUNT=2 THEN 1250
1205 IF I=C(1,​1) AND J=C(1,​2) THEN 1250
1210 IF SMRT(I,​J)=0 THEN 1250
1215 IF SMRT(I,​J)=A(C(1,​1),​C(1,​2)) THEN COUNT=2:​X=I:​Y=J
1250 NEXT J:​NEXT I:​IF COUNT=1 THEN 1100
1255 GOSUB 400:​XS=X:​YS=Y:​X=(X*20)-10:​Y=(Y*16)-8:​GOSUB 600:​GOTO 1185
6010 DATA -4,​-2,​4,​-2,​-4,​-1,​4,​-1,​-6,​2,​6,​2,​-4,​0,​4,​0,​-4,​1,​4,​1,​HAT
6020 DATA -5,​0,​5,​0,​-5,​-1,​5,​-1,​-4,​2,​4,​2,​-4,​-3,​4,​-3,​-4,​1,​4,​1,​-4,​-2,​4,​-2,​0,​-6,​0,​-6,​0,​5,​0,​5,​-3,​-4,​3,​-4
6021 DATA -3,​3,​3,​3,​-2,​4,​2,​4,​-2,​-5,​2,​-5,​BALL
6030 DATA -6,​4,​8,​4,​4,​3,​7,​3,​5,​2,​6,​2,​6,​1,​6,​1,​-4,​3,​-4,​-1,​-3,​3,​-3,​-2,​-2,​0,​-2,​-3,​-1,​0,​-1,​-4,​0,​3,​0,​-5
6031 DATA 1,​3,​1,​-4,​2,​3,​2,​3,​2,​0,​2,​-3,​3,​3,​3,​-4,​4,​2,​4,​-1,​HOUSE
6040 DATA -2,​-6,​-2,​3,​-1,​-5,​-1,​3,​0,​-5,​2,​-3,​1,​-5,​2,​-4,​0,​2,​3,​5,​0,​3,​2,​5,​1,​5,​2,​3,​-4,​5,​-3,​4,​0,​-2,​3,​0,​0,​0,​0,​-3
6041 DATA 1,​-3,​1,​-3,​-3,​-6,​-3,​-6,​-2,​-2,​0,​-2,​3,​-4,​3,​-4,​DOG
6050 DATA -1,​-4,​-1,​5,​1,​-4,​1,​5,​-2,​-3,​-2,​3,​2,​-3,​2,​3,​-3,​-2,​-3,​1,​3,​-2,​3,​1,​0,​-5,​0,​7,​-4,​-1,​4,​-1,​3,​3,​3,​3
6051 DATA 4,​5,​4,​5,​6,​7,​6,​7,​KITE
6060 DATA -7,​0,​-5,​0,​-3,​0,​-1,​0,​0,​0,​1,​0,​3,​0,​7,​0,​-6,​1,​6,​1,​-5,​2,​5,​2
6061 DATA -5,​-1,​5,​-1,​-3,​-2,​-2,​-2,​-3,​-3,​-2,​-3,​1,​-2,​2,​-2,​1,​-3,​2,​-3,​BOAT
6070 DATA -3,​0,​-3,​1,​-2,​0,​-2,​3,​-1,​0,​-1,​5,​0,​0,​0,​7,​1,​0,​1,​5,​2,​0,​2,​3,​3,​0,​3,​1
6071 DATA -3,​-1,​3,​-1,​-4,​-2,​4,​-2,​-3,​-3,​4,​-3,​-3,​-4,​3,​-4,​-2,​-5,​2,​-5,​-1,​-6,​-1,​-6,​1,​-6,​1,​-6,​ICECREAM
6080 DATA -5,​-3,​-5,​-2,​-5,​2,​-5,​3,​-4,​-2,​-4,​-1,​-4,​1,​-4,​2,​0,​-2,​3,​-2,​-3,​-1,​2,​-1,​4,​-1,​4,​-1
6081 DATA -3,​0,​5,​0,​-3,​1,​3,​1,​0,​2,​4,​2
6082 DATA -6,​-4,​-6,​-2,​-5,​-1,​-5,​-1,​-5,​1,​-5,​1,​-6,​2,​-6,​4,​0,​-3,​2,​-3,​-1,​-2,​-1,​-2,​-1,​2,​-1,​2,​FISH
6090 DATA 3,​-3,​5,​-3,​-5,​-2,​-3,​-2,​3,​-2,​4,​-2,​6,​-2,​6,​2,​-4,​-1,​-4,​3,​-3,​-1,​-3,​3,​-2,​1,​1,​1
6091 DATA 3,​-1,​5,​-1,​3,​0,​3,​3,​2,​1,​2,​3,​-6,​-1,​-6,​-1,​-2,​-2,​2,​-2,​-2,​-1,​2,​-1,​-2,​0,​2,​0,​ELEPHANT
6100 DATA 0,​-2,​-2,​0,​-1,​0,​-1,​3,​1,​0,​0,​1,​-4,​-2,​-3,​-3,​-3,​-1,​-2,​-2
6101 DATA 0,​-4,​1,​-5,​1,​-3,​2,​-4,​2,​-1,​3,​-2,​3,​0,​4,​-1,​-3,​4,​1,​4,​-2,​5,​0,​5,​-2,​6,​0,​6,​FLOWERS
8000 DIM A(8,​5),​SMRT(8,​5),​B(10),​C(2,​2),​NM1$(10),​NM2$(10),​SC(2),​A$(1):​PL=0:​SC(0)=0:​SC(1)=0.1
8005 ? "YOU WISH TO PLAY AGAINST THE COMPUTOR":​? "(Y/N)":​INPUT A$:​IF A$="Y" THEN CO=1
8010 ? "ENTER NAME OF FIRST PLAYER";:​INPUT NM1$:​IF CO=1 THEN NM2$="ATARI":​GOTO 8020
8015 ? "ENTER NAME OF SECOND PLAYER";:​INPUT NM2$
8020 FOR I=1 TO 10:​B(I)=0:​NEXT I:​FOR I=1 TO 8:​FOR J=1 TO 5:​A(I,​J)=0:​SMRT(I,​J)=0:​NEXT J:​NEXT I:​TOT=0
8025 FOR I=1 TO 8:​FOR J=1 TO 5
8030 A=INT(10*RND(0)+1):​SOUND 0,​10*A,​10,​10:​B(A)=B(A)+1:​IF B(A)>4 THEN B(A)=4:​GOTO 8030
8040 A(I,​J)=A:​NEXT J:​NEXT I:​SOUND 0,​0,​0,​0:​IF CO=1 THEN HOWSMART=(SC(1))/(SC(0)+SC(1))
8045 GRAPHICS 7:​COLOR 1:​FOR I=0 TO 7:​PLOT I*20,​0:​DRAWTO I*20,​79:​IF I<5 THEN PLOT 0,​I*16:​DRAWTO 159,​I*16
8050 NEXT I:​PLOT 159,​0:​DRAWTO 159,​79:​POKE 752,​1:​RETURN
8305 X=X+1:​Y=Y+1:​GOTO 8400
8306 X=X+1:​Y=Y-1:​GOTO 8400
8307 X=X+1:​GOTO 8400
8309 Y=Y+1:​X=X-1:​GOTO 8400
8310 Y=Y-1:​X=X-1:​GOTO 8400
8311 X=X-1:​GOTO 8400
8313 Y=Y+1:​GOTO 8400
8314 Y=Y-1
8400 IF X>8 THEN X=8
8405 IF X<1 THEN X=1
8410 IF Y>5 THEN Y=5
8415 IF Y<1 THEN Y=1
9500 GRAPHICS 0:​? "DO YOU WISH TO CONTINUE";:​INPUT A$:​IF A$="N" THEN GRAPHICS 0:​END
9505 ? "DO YOU WISH TO KEEP YOUR SCORE";:​INPUT A$:​IF A$="N" THEN RUN
9510 GOSUB 8020:​GOTO 100	

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!