Countabout


Kids and computers just don't mix. Not if it's your computer that is. They take up far too much valuable hacking time. However it has to be conceded that micros do have a role in the pedagogic process, and so it is not without some reluctance that we have included a selection of educational programs, of which this is one. This is for the very small, and has been designed to keep them quiet while you have an algorithm to work on, whilst at the same time teaching them the basics of counting.

The program sets a series of counting problems from the numbers one to nine. You know, count the ships, flowers, cats, houses or whatever and - if the answer is correct - reward the little angels with ships moving, cats smiling, telephones ringing or the like.

    5  REM *COUNTABOUT* BBC VERSION*    CONVE
RSION I.THOMAS.ORIGINAL  @WALWYN.
   10 ENVELOPE1,1,2,-2,0,1,1,0,128,0,0,-31,12
8,0
   20 X=0:GOSUB890
   30 Z$=STRING$(29,CHR$9)
   40 MODE1:VDU28,4,30,35,4,19,1,9;0;:PRINTTA
B(11)"COUNTABOUT"''"A counting game for child
ren    aged 2-5."
   50 GOSUB390
   60 PRINT''"Press any key to start the game
":*FX15
   70 GOTO90
   80 PRINTTAB(10,22)"Press any key":*FX15
   90 K=GET
  100 CLS
  110 Q=RND(9)
  120 K=RND(5)
  130 J=4:FORI=1TOQ
  140   IFI=4 ORI=7 J=4
  150   ON((I-1) DIV3+1) GOSUB560,570,580
  160   PRINTSTRING$(J,CHR$9);
  170   IFX=1 GOTO200
  180   ONK GOSUB640,670,710,740,760
  190   GOTO210
  200   ONK GOSUB780,790,810,830,860
  210 J=J+10:NEXT
  220 COLOUR3
  230 IFX=1 X=0:GOTO350
  240 PRINTTAB(0,0);"H O W  M A N Y  ";N$;" ?
";
  250 *FX15
  260 A=GET-48:IFA<1 OR A>9 GOTO250
  270 PRINT;A
  280 IFA=Q CLS:GOTO320
  290 IFABS(A-Q)=1 GOTO330
  300 VDU7:COLOUR1:PRINT'"N O,W R O N G  A N 
S W E R."
  310 GOSUB590:GOTO240
  320 X=1:GOTO130
  330 COLOUR2:PRINT'"V E R Y  N E A R L Y !"
  340 GOSUB590:GOTO240
  350 GOSUB600:COLOUR1:PRINTTAB(9,0)"C O R R 
E C T"'
  360 IFQ=1 PRINT;Q;"  ";LEFT$(N$,LEN(N$)-2):
GOTO380
  370 PRINTQ;"   ";N$
  380 FORF=1TO2000:NEXT:GOSUB430:GOTO80
  390 PRINT''"There is no need to use the    
 RETURN key in this program."
  400 PRINT'"Once the child knows where the  
numbers 1 to 9 are on the       keyboard,you 
can sit back and   let the computer do a bit 
of    teaching."
  410 PRINT'"(The function keys f1 to f9 can 
be usd as well as the number    keys."
  420 RETURN
  430 ON Q GOTO440,450,460,470,480,490,500,51
0,520
  440 A$="AB  B  B ":GOTO530
  450 A$="CEDCEFGEE":GOTO530
  460 A$="CED EJGEF":GOTO530
  470 A$=" _ A BHHI":GOTO530
  480 A$="KEEGEDGEF":GOTO530
  490 A$="CEDLEDGEF":GOTO530
  500 A$=" __  A A ":GOTO530
  510 A$="CEDLEJGEF":GOTO530
  520 A$="CEDGEJGEF"
  530 B$="":FORI=1TO9:IFMID$(A$,I,1)<>" " AND
MID$(A$,I,1)<>"_" B$=B$+CHR$(ASC(MID$(A$,I,1)
)+159) ELSE B$=B$+MID$(A$,I,1)
  540 NEXT
  550 PRINTLEFT$(B$,3)'MID$(B$,4,3)'RIGHT$(B$
,3):RETURN
  560 PRINTTAB(0,5);:RETURN
  570 PRINTTAB(0,11);:RETURN
  580 PRINTTAB(0,17);:RETURN
  590 FORL=1TO3000:NEXT
  600 PRINTTAB(0,0)SPC(31)
  610 FORL=1TO3
  620   PRINTSPC(31)
  630 NEXT:RETURN
  640 N$="H O U S E S":COLOUR3
  650 PRINT"    ";LEFT$(Z$,28)" ";CHR$240;CHR
$255;CHR$255;CHR$255;CHR$239;LEFT$(Z$,26);CHR
$240;STRING$(5,CHR$255);CHR$239;LEFT$(Z$,25);
CHR$225"      ";CHR$225;LEFT$(Z$,24);CHR$225"
  ";CHR$242;"   ";CHR$225;
  660 RETURN
  670 N$="C A T S":COLOUR2
  680 PRINT" "CHR$240"  "CHR$239;LEFT$(Z$,28)
STRING$(4,CHR$255)LEFT$(Z$,27)"="CHR$237;CHR$
255;CHR$255;CHR$238"="LEFT$(Z$,27);
  690 PRINTCHR$240;CHR$255;CHR$255;CHR$239;LE
FT$(Z$,28)STRING$(4,CHR$255);
  700 RETURN
  710 N$="T E L E P H O N E S":COLOUR2
  720 PRINTCHR$240;CHR$255;CHR$255;CHR$255;CH
R$239;LEFT$(Z$,28);:COLOUR130:COLOUR0:PRINT"(
o)";:COLOUR128:COLOUR2
  730 RETURN
  740 N$="S H I P S":COLOUR0:COLOUR131
  750 PRINT"_"CHR$241;CHR$241;CHR$241;LEFT$(Z
$,27)CHR$239":::::"CHR$240;:COLOUR128:RETURN
  760 N$="V A N S":COLOUR3
  770 PRINT" "CHR$224;CHR$255;CHR$255;LEFT$(Z
$,28)STRING$(4,CHR$255)LEFT$(Z$,28)CHR$244;CH
R$241;CHR$241;CHR$244;:RETURN
  780 SOUND1,-15,RND(100),4:GOSUB640:COLOUR2:
FORW=0TO1000:NEXT:PRINTCHR$8;CHR$8;CHR$8;CHR$
254;CHR$8;CHR$8;CHR$8;CHR$8;CHR$8;CHR$254:FOR
W=0TO1000:NEXT:RETURN
  790 COLOUR2:PRINT" "CHR$240"  "CHR$239;LEFT
$(Z$,28);:COLOUR130:COLOUR0:PRINT" ";CHR$244;
CHR$244" ";:COLOUR2:COLOUR128:PRINTLEFT$(Z$,2
7)"="CHR$237;CHR$255;CHR$255;CHR$238"="LEFT$(
Z$,27);:COLOUR130:COLOUR0
  800 SOUND1,-15,RND(100)+100,4:PRINTCHR$238;
CHR$230;CHR$229;CHR$237;:COLOUR2:COLOUR128:PR
INTLEFT$(Z$,28)STRING$(4,CHR$255);:FORW=0TO20
00:NEXT:RETURN
  810 GOSUB710
  820 SOUND1,1,120,7:FORW=0TO1000:NEXT:SOUND1
,1,120,10:FORW=0TO2400:NEXT:RETURN
  830 GOSUB740:SOUND1,1,RND(50),5:FORW=0TO400
:NEXT:IFI<>Q RETURN
  840 FORW=26TO2STEP-1:PRINTTAB(W,20);:GOSUB7
40:IFW=18 ORW=8 SOUND1,-15,0,10
  850 FORK=0TO400:NEXT:PRINTTAB(0,20)SPC(96):
NEXT:RETURN
  860 GOSUB760:SOUND1,1,RND(50)+50,5:FORW=0TO
400:NEXT:IFI<>Q RETURN
  870 FORW=26TO0STEP-1:PRINTTAB(W,20);:GOSUB7
60:IFW=18 ORW=8 SOUND1,-15,70,4:SOUND1,0,0,2:
SOUND1,-15,70,6
  880 FORK=0TO400:NEXT:PRINTTAB(0,20)SPC(96):
NEXT:RETURN
  890 RESTORE:FORF=0TO7:READA,B
  900   ?(&C00+F)=A
  910   ?(&C08+F)=128
  920   ?(&C10+F)=B
  930 NEXT
  940 FORF=0TO7:READ?(&C18+F)
  950   ?(&C20+F)=0:IFF=3 ?(&C20+F)=255
  960   READ?(&C28+F),?(&C30+F)
  970 NEXT
  980 FORF=0TO7
  990   ?(&C40+F)=128
 1000   ?(&C38+F)=0
 1010   ?(&C48+F)=16
 1020   READ?(&C50+F)
 1030   ?(&C58+F)=8
 1040   ?(&C60+F)=1
 1050   ?(&C68+F)=(2^(7-F))-1
 1060   ?(&C70+F)=256-(2^F)
 1070   ?(&C78+F)=256-(2^(7-F))
 1080   ?(&C80+F)=(2^F)-1
 1090   ?(&C88+F)=0
 1100   READ?(&C90+F)
 1110   ?(&C98+F)=16
 1120 NEXT
 1130 FORF=0TO7:READ?(&CA0+F):NEXT
 1140 ?&C38=255
 1150 ?&C40=255
 1160 ?&C4B=240
 1170 ?&C5B=15
 1180 ?&C60=255
 1190 ?&C88=255:?&C89=255
 1200 DATA1,0,2,0,4,0,8,3,16,4,32,8,64,8,128,
8
 1210 DATA0,16,8,0,16,8,0,32,4,192,192,3,32,0
,0,16,0,0,16,0,0,16,0,0
 1220 DATA0,213,0,171,0,213,15,171,8,213,8,17
1,8,213,8,171
 1230 DATA0,60,126,126,126,126,126,60,0
 1240 VDU23,255,255,255,255,255,255,255,255,2
55
 1250 VDU23,254,127,73,73,127,73,73,127,0
 1260 FORI=1TO9:$&900="*KEY"+STR$(I)+" "+STR$
(I)
 1270 X%=0:Y%=&9:CALL&FFF7:NEXT
 1280 RETURN