Compucolor.org – Virtual Media

Listing of file='GUESS.BAS;01' on disk='vmedia/chip_106-sector.ccvf'

0 GOTO 65000
1 GOSUB 64000:GOTO 10
2 X= 56:Y= 10:ZZ= CALL (0):PLOT 3,X,Y:PRINT SPC( 7):PLOT 3,X,Y:RETURN
5 PLOT 14,6,6,3,2,7:PRINT SPC( 60):PRINT :PLOT 3,2,7:RETURN
6 FOR A= 1TO 3500:NEXT :RETURN
10 DIM R$(29),C(29):FOR A= 0TO 29:READ R$(A),C(A):NEXT
12 FOR A= 1TO PEEK (33209):C= FN R(10):NEXT
13 FILE "R",1,"PUZZL1",1:FILE "R",2,"PUZZL2",1:FILE "R",3,"PUZZL3",1
14 DATA "2 5 0",20,"4 0 0",24,"3 0 0",40,"BROKE",7,"1000 ",8,"2 0 0",16
15 DATA "1 0 0",48,"3 5 0",47,"4 5 0",25,"1 5 0",53,"2 5 0",20,"4 0 0",24
16 DATA "3 0 0",40,"PASS ",56,"5 0 0",39,"2 0 0",16,"1 0 0",48,"3 5 0",47
17 DATA "4 5 0",25,"1 5 0",53,"2 5 0",20,"4 0 0",24,"3 0 0",40,"PASS ",56
18 DATA "5 0 0",39,"2 0 0",16,"1 0 0",48,"3 5 0",47,"4 5 0",25,"1 5 0",53
19 FOR A= 0TO 4:READ V$(A):NEXT
20 DATA "P E R S O N","P L A C E","T H I N G","P H R A S E","T I T L E"
25 B$(0)= "naal":B$(1)= "e  ":B$(2)= "obbm"
27 SB(0)= 2:SB(1)= 13:SB(2)= 25
29 REM  --------------- DRAW BOARD ---------------
30 RESTORE 35:R= 1:Q= 3:Q1= 7:P1= 0
32 PLOT 29,15,27,24,6,56,12,2:FOR A= 1TO 6:READ X0,Y0,X1,T1
35 DATA 2,123,125,5,2,107,125,7,2,15,73,5,76,87,99,7,76,67,99,31,101,87,110,41
40 PLOT 250,X0,Y0,X1,247:FOR B= 1TO T1:PLOT 17:NEXT B:PLOT 1:NEXT A:PLOT 255
45 PLOT 6,6,3,40,11:PRINT "LETTERS":PLOT 3,42,12:PRINT "OUT"
50 FOR A= 16TO 28:PLOT 3,40,A:PRINT CHR$ (A+ 49);SPC( 5);CHR$ (A+ 62):NEXT A
55 PLOT 6,1,3,52,20,103,103,62
60 Y= 10:FOR A= 6TO 0STEP - 1:PLOT 6,C(A):PLOT 3,56,Y:PRINT SPC( 7)
65 PLOT 3,56,Y+ 1:PRINT " ";R$(A);" ":PLOT 3,56,Y+ 2:PRINT SPC( 7)
70 Y= Y+ 3:NEXT A:PLOT 6,60,3,0,12:PRINT
71 PRINT TAB( 4)" ```` `   ` `````  ````  ````"
72 PRINT TAB( 4)"`     `   ` `     `     `"
73 PRINT TAB( 4)"` ``` `   ` ```   ````` `````"
74 PRINT TAB( 4)"`   ` `   ` `         `     `"
75 PRINT TAB( 4)" ```   ```  ````` ````  ````":PRINT :PRINT :PLOT 6,57
76 PRINT TAB( 7)"`   ` `   `  ```  `````"
77 PRINT TAB( 7)"`   ` `   ` `   `   `"
78 PRINT TAB( 7)"` ` ` ````` `````   `"
79 PRINT TAB( 7)"` ` ` `   ` `   `   `"
80 PRINT TAB( 7)"````` `   ` `   `   `"
82 PLOT 6,56:PRINT :PRINT TAB( 7)"@ RAZAROO PRODUCTIONS"
84 REM  ------------ GET PLAYER INFO -------------
85 GOSUB 5:INPUT "HOW MANY PLAYERS ( 1 - 3 ) ";Z$:P= VAL (Z$)- 1
90 IF P< 0OR P> 2OR P< > INT (P)THEN 110
95 FOR A= 0TO P:GOSUB 5:PRINT "NAME OF PLAYER #";A+ 1;:INPUT "    ( MAX 8 LETTERS ).... ";P$(A):M(A)= 0
100 P$(A)= LEFT$ (P$(A),8):PLOT 15,6,2,3,22* A+ 2,2:PRINT P$(A);" ";
105 IF LEN (P$(A))< 6THEN FOR B= LEN (P$(A))TO 6:PRINT ".";:NEXT B
110 PRINT " 0":NEXT A:GOSUB 5
114 REM  --------- GET PUZZLE & PRINT IT ---------
115 GOSUB 2000:VL= 0:CN= 0
120 PLOT 6,63:FOR A= 11TO 26:PLOT 3,1,A:PRINT SPC( 36):PRINT :NEXT A
125 PLOT 27,10,15,6,1,3,41,16:PRINT SPC( 13):PLOT 3,47,16:PRINT SPC( 13)
130 PLOT 30,6,48:FOR A= 0TO L:X= 1
135 FOR B= 1TO LEN (A$(A))
140 IF MID$ (A$(A),B,1)= " "THEN X= X+ 3:NEXT B
145 FOR C= 0TO 2:PLOT 3,X,6* A+ 11:PRINT B$(C):X= X+ 1:NEXT C,B,A
150 PLOT 29,27,24,6,6,3,4,29:PRINT "ROUND#";R;" ....... ";V$(V);"  "
155 REM  --------------- START PLAY ---------------
160 IF CN= CTTHEN GOTO 450
162 GOSUB 5:PRINT SPC( 8);P$(P1);:INPUT "'S TURN ..... PRESS RETURN TO SPIN ";Z$
165 PLOT 15:FOR A= 1TO FN R(21)+ 21:PLOT 6,C(Q1):GOSUB 2:PRINT SPC( 7)
170 GOSUB 2:PRINT " ";R$(Q1):GOSUB 2:PRINT SPC( 7)""
175 Q= Q+ 1:IF Q> 29THEN Q= 0
180 Q1= Q1+ 1:IF Q1> 29THEN Q1= 0
185 NEXT A
190 IF R$(Q)= "BROKE"THEN M(P1)= 0:GOSUB 4000:GOSUB 5:GOTO 415
195 IF R$(Q)= "PASS "THEN GOSUB 5:GOTO 420
200 GOSUB 5:INPUT "CHOOSE A LETTER - BUY A VOWEL - GUESS THE PUZZLE .... ";Z$:Z$= LEFT$ (Z$,1)
205 IF Z$= "G"THEN 225
210 IF Z$= "B"THEN 255
215 IF Z$= "L"THEN 300
220 GOTO 200
224 REM  ----------- GUESS THE PUZZLE ------------
225 GOSUB 5:INPUT "WHAT IS YOUR GUESS ... ";Z$
230 Q$= Z$+ " ":GOSUB 2500:GOSUB 2530:Z$= Q$
235 IF Z$= A$THEN 495
240 GOSUB 5:GOTO 410
245 P1= P1+ 1:IF P1> PTHEN P1= 0
250 GOTO 160
254 REM  -------------- BUY A VOWEL --------------
255 IF  VL= 5THEN GOSUB 5:PRINT SPC( 20);"ALL VOWELS HAVE BEEN USED":GOSUB 6:GOTO 200
260 IF M(P1)< VAL (R$(Q))THEN GOSUB 5:PRINT SPC( 12);"YOU NEED ";VAL (R$(Q));"  POINTS TO BUY A VOWEL":GOSUB 6:GOTO 200
265 GOSUB 5:PRINT SPC( 10);:INPUT "WHICH VOWEL:  A - E - I - O - U ..... ";Z$:Z$= LEFT$ (Z$,1)
270 IF Z$= "A"OR Z$= "E"OR Z$= "I"OR Z$= "O"OR Z$= "U"THEN 280
275 GOTO 265
280 GOSUB 3000:GOSUB 5:IF K= 1THEN 405
282 VL= VL+ 1:M(P1)= M(P1)- VAL (R$(Q)):GOSUB 4000:PLOT 15
285 GOSUB 5:IF T= 0THEN GOTO 400
290 IF T= 1THEN PRINT SPC( 24);"THERE IS 1 ";Z$:GOSUB 6:GOSUB 4000:GOTO 160
295 PRINT SPC( 22);"THERE ARE";T;" ";Z$;" 'S":GOSUB 6:GOSUB 4000:GOTO 160
299 REM  --------------- LETTER ---------------
300 GOSUB 5:PRINT SPC( 20);:INPUT "WHICH LETTER ..... ";Z$:Z$= LEFT$ (Z$,1)
305 IF ASC (Z$)< 65OR ASC (Z$)> 90THEN 300
310 IF Z$= "A"OR Z$= "E"OR Z$= "I"OR Z$= "O"OR Z$= "U"THEN GOSUB 5:PRINT SPC( 23);"";Z$;"  IS A VOWEL":GOSUB 6:GOTO 300
315 GOSUB 3000:GOSUB 5:IF K= 1THEN GOTO 405
320 IF T= 0THEN GOTO 400
325 IF T= 1THEN PRINT SPC( 10);"THERE IS 1 ";Z$;:GOTO 335
330 PRINT SPC( 8);"THERE ARE";T;" ";Z$;" 'S";
335 PRINT " FOR A TOTAL OF";T* VAL (R$(Q));" POINTS"
340 M(P1)= M(P1)+ (T* VAL (R$(Q))):GOSUB 4000
345 CN= CN+ 1:GOSUB 6:GOTO 160
400 PRINT SPC( 8);"THERE IS NO ";Z$;:GOTO 430
405 PRINT "  ";Z$;"  HAS ALREADY BEEN USED";:GOTO 430
410 PRINT SPC( 5);"THAT IS NOT CORRECT";:GOTO 430
415 PRINT SPC( 6);"B R O K E";:PLOT 14:PRINT "    YOU LOOSE YOUR POINTS AND TURN":GOTO 435
420 PRINT SPC( 10);" P A S S ";
430 PRINT " --- SORRY, YOU LOSE YOUR TURN"
435 P1= P1+ 1:IF P1> PTHEN P1= 0
440 GOSUB 6:GOTO 160
445 REM  ---------- ONLY VOWELS ---------
450 GOSUB 5:PRINT "   NOTICE --- THERE ARE ONLY VOWELS LEFT IN THE PUZZLE":GOSUB 6
455 GOSUB 5:PRINT "   STARTING WITH ";P$(P1);"  EACH PLAYER GETS 1 LAST GUESS":GOSUB 6
460 FOR C= 0TO P:GOSUB 5:PRINT "YOUR GUESS ";P$(P1);:INPUT "  ";Z$
465 Q$= Z$+ " ":GOSUB 2500:GOSUB 2530:Z$= Q$
470 IF Z$= A$THEN 495
475 GOSUB 5:PRINT SPC( 16);"SORRY, THAT IS NOT CORRECT":GOSUB 6
480 P1= P1+ 1:IF P1> PTHEN P1= 0
485 NEXT C
490 GOSUB 5:PRINT "THE PUZZLE WAS ... ";A$:GOSUB 6:GOTO 500
495 GOSUB 5:PRINT "  *** CORRECT ***";:PLOT 14:PRINT "   YOU GET";10* VAL (R$(Q));" POINTS   *** CORRECT ***"
497 M(P1)= M(P1)+ 10* VAL (R$(Q)):GOSUB 4000:PLOT 14
500 FOR C= 65TO 90:Z$= CHR$ (C):GOSUB 3500:NEXT :GOSUB 6
510 R= R+ 1:IF R< 8THEN GOSUB 5:PRINT SPC( 15);:INPUT "PRESS RETURN FOR NEXT ROUND";Z$:GOTO 115
520 GOSUB 5:INPUT "THE GAME IS OVER --- WANT TO PLAY AGAIN ";Z$:Z$= LEFT$ (Z$,1)
525 IF Z$= "Y"THEN PLOT 6,2,12:GOTO 30
530 PLOT 27,11,6,2,12:FILE "C",1,2,3:GOTO 62000
2000 REM  --------- GET WORDS FROM FILE -----------
2010 GOSUB 5:PRINT SPC( 16);"W O R K I N G";:PLOT 14:PRINT "    PLEASE WAIT"
2020 CT= 0:A$= "":L= FN R(3):L= L- 1
2030 GET L+ 1,1,1;G:G= G- 1:G= FN R(G):G= G+ 1
2040 FOR A= 0TO L
2050 K= 12:IF A= 0THEN K= 11
2060 GET L+ 1,G,SB(A);A$(A)[K]
2070 NEXT A
2080 GET L+ 1,G,1;V$[1]:V= VAL (V$):V= V- 1
2140 FOR B= 0TO L:Q$= A$(B):GOSUB 2500:A$(B)= Q$:A$= A$+ A$(B)+ " ":NEXT B
2150 Q$= A$:GOSUB 2500:A$= Q$
2160 FOR B= 66TO 90:IF B= 69OR B= 73OR B= 79OR B= 85THEN 2200
2170 FOR C= 1TO LEN (A$)
2180 IF MID$ (A$,C,1)= CHR$ (B)THEN CT= CT+ 1:GOTO 2200
2190 NEXT C
2200 NEXT B:RETURN
2500 REM  -------- LOP OFF END SPACES -------
2510 S= LEN (Q$)
2520 IF MID$ (Q$,S,1)= " "THEN Q$= LEFT$ (Q$,S- 1):S= S- 1:GOTO 2520
2525 RETURN
2530 REM  ------- LOP OFF MIDDLE SPACES -------"
2540 FOR S= 1TO LEN (Q$)
2550 IF MID$ (Q$,S,2)= "  "THEN Q$= LEFT$ (Q$,S)+ RIGHT$ (Q$,LEN (Q$)- S- 1):GOTO 2550
2560 NEXT S:RETURN
2999 REM  ------ CHECK LETTER USE ----------
3000 K= 0:M= ASC (Z$)- 64
3010 M= ABS ((30674* (M< 14)+ (M< 14)* M* 128)+ (30686* (M> 13)+ (M> 13)* (M- 13)* 128))
3020 IF PEEK (M)= 42THEN K= 1:RETURN
3030 POKE M,42
3499 REM  ------- PRINT LETTERS -------
3500 T= 0:PLOT 6,48:FOR A= 0TO L:X= 2:FOR B= 1TO LEN (A$(A))
3510 IF Z$= MID$ (A$(A),B,1)THEN PLOT 3,X,6* (A+ 1)+ 6:PRINT Z$:T= T+ 1
3520 X= X+ 3:NEXT B,A:RETURN
4000 PLOT 15,6,7,3,22* P1+ 10,2:PRINT SPC( 8):PLOT 3,22* P1+ 10,2:PRINT M(P1):RETURN
62000 GOSUB 65410:AD= ER:Z= TM+ 34:GOSUB 65400:END
64000 GOSUB 65410:Z= 32624:AD= TM+ 2:GOSUB 65400
64010 POKE TM+ 5,20:POKE TM+ 7,14:POKE TM+ 9,128:POKE TM+ 10,255
64020 POKE TM+ 14,128:POKE TM+ 15,0:POKE TM+ 19,1:POKE TM+ 20,0
64080 Z= 114:POKE TM+ 27,Z:POKE TM+ 28,255:RETURN
65000 GOSUB 65410:RESTORE 65010
65010 DATA 33,-1,-1,6,-1,14,-1,17,-1,-1,25,126,17,-1,-1,25,119
65030 DATA 17,-1,-1,25,13,194,-1,-1,17,-1,-1,25,5,194,-1,-1,201
65040 IF TM> 65501THEN TM= TM- 34:GOTO 65080
65050 FOR J= 1TO 34:READ A1
65060 IF A1> = 0AND A1< > PEEK (TM+ J)THEN J= 34:TM= TM- 34
65070 NEXT J
65080 RESTORE 65010
65090 FOR J= 1TO 34:READ A1:POKE TM+ J,A1- (A1< 0):NEXT
65100 Z= TM+ 1:AD= 33283:GOSUB 65400
65110 Z= TM:AD= ER:GOSUB 65400
65120 Z= TM+ 6:AD= TM+ 32:GOSUB 65400
65130 Z= TM+ 8:AD= TM+ 24:GOSUB 65400
65140 CLEAR 500:DEF FN R(X)= INT (X* RND (1)+ 1):GOTO 1
65400 ZZ= INT (Z/ 256):POKE AD,Z- 256* ZZ:POKE AD+ 1,ZZ:RETURN
65410 ER= 32940:TM= 256* PEEK (ER+ 1)+ PEEK (ER):RETURN