Tollbooth
10 FAST
20 DIM S(32)
30 PRINT AT 10,0;"HOW MANY VEHICLES?"
40 SLOW
50 INPUT HH
60 FAST
70 CLS
75 PRINT AT 6,12;"\:'\''\''\''\''\''\''\':";AT 7,12;"\: $ \ :";AT 8,12;"\:.\..\..\..\..\..\..\.:"
80 PRINT AT 18,1;"\:'\''\''\''\''\':";AT 19,1;"\: TOLL\ :";AT 20,1;"\:.\..\..\..\..\.:"
90 PRINT AT 18,25;"\:'\''\''\''\''\''\':";AT 19,25;"\: BOOTH\ :";AT 20,25;"\:.\..\..\..\..\..\.:"
100 LET A$="\:'\''\''\: \ :\: \ :\: \ :\: \ :\@@\@@\: \ :\: \ :\: \ :\: \ :\''\''\':"
110 PRINT AT 1,0;A$
120 PRINT AT 21,11;"\''\''\: \ :\''\''"
130 FOR N=2 TO 40
140 PLOT 24-24*SIN (N/72*PI),N
150 NEXT N
160 FOR N=2 TO 40
170 PLOT 39+24*SIN (N/72*PI),N
180 NEXT N
185 FOR Q=1 TO HH
190 GOSUB 3000
195 SLOW
200 LET R=RND
210 IF R>.9 THEN LET A$="%T"
220 IF R<.9 THEN LET A$="%C"
230 GOSUB 2000
300 FOR N=8 TO 2 STEP -1
305 IF I<4 THEN LET I=4
306 IF RR=0 AND I>13 THEN LET I=13
307 IF I<18 AND RR=1 THEN LET I=18
308 IF I>27 THEN LET I=27
310 PRINT AT N,I;A$;AT N+1,II;" "
320 LET II=I
330 LET I=I+(INT (RND*3)-1)
350 NEXT N
355 IF II=0 THEN STOP
360 PRINT AT 2,II;" "
370 GOSUB 4000
390 NEXT Q
396 PAUSE 40000
397 FAST
398 CLS
399 RUN
1000 IF A$="%T" THEN GOTO 1500
1010 LET RRR=INT (2*RND)
1020 IF RRR=1 THEN GOTO 1500
1030 LET I=I+(INT (RND*3)-1)
1100 RETURN
1500 LET I=I+(INT (RND*3)-1)
1510 RETURN
2000 FOR N=20 TO 16 STEP -1
2010 PRINT AT N,I;A$;AT N+1,II;" "
2020 NEXT N
2100 LET RR=INT (2*RND)
2110 IF A$="%T" THEN LET RR=1
2115 IF A$="%T" THEN GOTO 2500
2120 IF RR=1 THEN GOTO 2500
2130 FOR N=15 TO 9 STEP -1
2140 PRINT AT N,I;A$;AT N+1,II;" "
2150 LET II=I
2160 LET I=I-1
2170 NEXT N
2180 RETURN
2500 FOR N=15 TO 9 STEP -1
2510 PRINT AT N,I;A$;AT N+1,II;" "
2520 LET II=I
2530 LET I=I+1
2540 NEXT N
2550 RETURN
3000 LET I=15
3010 LET II=15
3020 RETURN
4000 IF RR=0 THEN LET I=3*INT ((I/3)+1.5)-2
4002 IF RR=1 THEN LET I=3*INT ((I/3)+1.5)-3
4005 LET S(I)=S(I)+1
4010 PRINT AT 1,I;A$
4030 FOR N=1 TO 10
4040 NEXT N
4050 PRINT AT 1,I;"%*"
4060 FOR N=1 TO 10
4070 NEXT N
4080 PRINT AT 1,I;" "
4090 PRINT AT 0,I;S(I)
4100 IF A$="%C" THEN LET S(32)=S(32)+.3
4110 IF A$="%T" THEN LET S(32)=S(32)+.6
4115 GOSUB 5000
4120 PRINT AT 7,14;S$
4130 RETURN
5000 LET S$=STR$ S(32)
5010 IF LEN S$=1 THEN LET S$=S$+".00"
5020 IF S$(LEN S$-1)="." THEN LET S$=S$+"0"
5030 RETURN
9998 SAVE "TOLLBOOT%H"
9999 RUN