Compucolor.org – Virtual Media

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

1 PLOT 6,39,12,27,24
5 CLEAR 128
10 DIM B(15,5,5):DIM W(15,5,5):DIM N(75)
15 DIM BA(3):DIM BT(3,5):DIM BW(3,5)
20 DIM NB(15,12):DIM A$(3)
21 P1= 2
22 P2= 2.25
23 P3= 3
35 REM
40 PRINT SPC( 28)"B I N G O"
50 PLOT 10,10
60 PRINT SPC( 10)"HELLO  MY NAME IS BINGO":PLOT 10:FOR TD= 1TO 1200:NEXT TD
70 PRINT "YOU AND ONE OTHER PERSON CAN PLAY AGAINST ME"
80 PRINT "EACH ONE OF US GETS FIVE (5) CARDS TO PLAY WITH"
90 PRINT "I WILL HAVE THE TOP FIVE (5) CARDS -- THE REST OF"
100 PRINT "THE CARDS BELONG TO YOU"
105 PLOT 10
110 PRINT "THIS GAME IS PLAYED FOR MONEY - EACH CARD COSTS"
120 PRINT "A MINIMUM OF $ 3.00 TO A MAXIMUM OF $ 15.00"
125 PLOT 10
130 PRINT "PAY OFFS ARE  "P1,"TO 1 FOR HORIZONTAL"
140 PRINT "              "P2,"TO 1 FOR VERTICAL"
150 PRINT "              "P3,"TO 1 FOR DIAGONAL"
160 FOR TD= 1TO 5000:NEXT TD
200 PLOT 10,10
210 INPUT "HOW MANY TO PLAY AGAINST ME (1) OR (2)?  ";NP
220 NP= INT (NP)
230 IF NP< 1OR NP> 2THEN 200
240 PLOT 10
245 BA(2)= 0:BA(3)= 0
250 FOR A= 2TO NP+ 1
255 PLOT 10
260 PRINT "PLAYER #"A- 1;" YOUR NAME PLEASE ";
270 INPUT A$(A):L= LEN (A$(A))
280 IF L< 1OR L> 10THEN 260
290 PRINT A$(A)" HOW MUCH IS YOUR BANK ROLL ";
300 INPUT BA(A):BA(A)= INT (BA(A))
310 IF BA(A)> 14THEN 350
315 PLOT 10
320 PRINT "CHEAPSKATE !!!   MINIMUM BANK ROLL IS $ 15.00"
325 GOTO 290
350 NEXT A
360 BA(1)= INT ((BA(2)+ BA(3))/ 2)
400 PLOT 12,10,10,10
410 FOR A= 2TO NP+ 1
415 PLOT 10
420 PRINT "YOU MAY BUY 5 CARDS "A$(A):PLOT 10
430 FOR B= 1TO 5
440 IF BA(A)< 3THEN BT(A,B)= 0:GOTO 530
450 PRINT "BALANCE $"BA(A);" ENTER DONATION FOR CARD #"B;" ";
460 INPUT BT(A,B):BT(A,B)= INT (BT(A,B))
470 IF BT(A,B)< = BA(A)THEN 500
480 PRINT "YOU DON'T HAVE THAT MUCH TURKEY - TRY AGAIN"
490 GOTO 450
500 IF BT(A,B)> 2AND BT(A,B)< 16THEN 530
510 PRINT "MINIMUM IS $ 3.00  MAXIMUM IS $ 15.00"
520 GOTO 450
530 BA(A)= BA(A)- BT(A,B)
535 BA(1)= BA(1)+ BT(A,B)
540 NEXT B
550 NEXT A
600 PLOT 3,0,30,11,28,11,28,11,28,11,28,11,28,11,28,11,28,11
610 H= 2
620 INPUT "DO YOU WANT TO SEE MY CARDS WHILE WE PLAY ?  Y/N  ";Y$
630 IF Y$= "Y"THEN 660
640 IF Y$< > "N"THEN 600
650 H= 1
660 PLOT 10,10
670 PRINT "GUESS WHAT - I AM THE OFFICIAL SCORE KEEPER"
680 FOR TD= 1TO 2000:NEXT TD
700 GOSUB 10000
710 FOR A= 1TO 27
720 GOSUB 11000
730 GOSUB 11300
740 NEXT A
800 GOSUB 11600
810 IF NB(0,0)> 6THEN 900
820 FOR A= 1TO 6
830 GOSUB 11000
840 GOSUB 11300
850 NEXT A
860 GOTO 800
900 PLOT 3,0,29,11
910 PRINT "THERE ARE ";NB(0,0);" BINGOS ON THE BOARD"
920 PRINT "STANDBY WHILE I COMPUTE WINNINGS (AND LOSSES)"
930 FOR CN= 1TO 15
940 A= INT ((CN- 1)/ 5)+ 1
950 B= CN
960 IF B> 5THEN B= B- 5:GOTO 960
970 BW(A,B)= 0
980 FOR J= 1TO 5
990 BW(A,B)= BW(A,B)+ P1* (NB(CN,J)* BT(A,B))
1000 NEXT J
1010 FOR J= 6TO 10
1020 BW(A,B)= BW(A,B)+ P2* (NB(CN,J)* BT(A,B))
1030 NEXT J
1040 BW(A,B)= BW(A,B)+ P3* ((NB(CN,11)+ NB(CN,12))* BT(A,B))
1050 BA(A)= BA(A)+ BW(A,B)
1060 BA(1)= BA(1)- BW(A,B)
1070 BW(A,0)= 0
1080 FOR J= 1TO 5:BW(A,0)= BW(A,0)+ BW(A,J):NEXT J
1090 NEXT CN
1100 PLOT 3,0,29,11,28,11
1110 PRINT "MY BALANCE IS"TAB( 40)BA(1)
1120 PRINT A$(2);" YOUR WINNINGS ARE"TAB( 40)BW(2,0)
1130 PRINT "      AND YOUR BALANCE IS"TAB( 40)BA(2);" "
1140 IF NP< 2THEN 1200
1150 FOR TD= 1TO 4000:NEXT TD
1160 PLOT 3,0,30,11,28,11
1170 PRINT A$(3);" YOUR WINNINGS ARE"TAB( 40)BW(3,0)
1180 PRINT "      AND YOUR BALANCE IS"TAB( 40)BA(3);" "
1200 FOR TD= 1TO 4000:NEXT TD
1210 PLOT 3,0,30,11,28,11,28,11
1220 INPUT "CARE TO PLAY AGAIN?  Y/N  ";Y$
1230 IF Y$= "Y"THEN 1700
1240 IF Y$< > "N"THEN 1210
1250 PLOT 12,27,11
1260 PLOT 10,10,10
1270 INPUT "DID YOU HAVE A GOOD TIME?  Y/N  ";Y$
1280 IF Y$= "Y"THEN 1400
1290 IF Y$= "N"THEN 1500
1300 PRINT "HEY DUMMY - CANT YOU ANSWER A SIMPLE QUESTION?"
1310 PLOT 10,10
1320 GOTO 1270
1400 PLOT 10,10
1410 PRINT "NOW THAT JUST TICKLES ME PINK"
1420 PRINT "HOPE TO SEE YOU AGAIN"
1430 GOTO 1600
1500 PLOT 10,10
1510 PRINT "AW SHUCKS - AND I THOUGHT YOU DID"
1520 PRINT "OH WELL - I DID ANYWAY"
1600 FOR TD= 1TO 2500:NEXT TD
1610 PLOT 12
1620 END
1700 FOR A= 0TO 15
1710 FOR B= 0TO 12
1720 NB(A,B)= 0
1730 NEXT B
1740 NEXT A
1750 FOR A= 1TO 3
1760 FOR B= 1TO 5
1770 BT(A,B)= 0
1780 NEXT B
1790 NEXT A
1800 GOTO 400
9000 END
10000 REM
10001 REM  HEADER
10002 REM
10010 H$= "B I N G O"
10020 PLOT 27,24,6,39,12
10030 FOR X= 2TO 54STEP 13
10040 FOR Y= 0TO 20STEP 10
10050 PLOT 3,X,Y:PRINT H$
10060 NEXT Y
10070 NEXT X
10100 REM
10101 REM  CARD OUTLINES
10102 REM
10110 FOR X= 0TO 104STEP 26
10120 FOR Y= 122TO 42STEP - 40
10130 PLOT 2,X,Y,242
10140 PLOT X+ 23,Y,X+ 23,Y- 25,X,Y- 25,X,Y
10150 PLOT X+ 1,Y- 1
10160 PLOT X+ 22,Y- 1,X+ 22,Y- 24,X+ 1,Y- 24,X+ 1,Y- 1
10170 PLOT 255
10180 NEXT Y
10190 NEXT X
10300 REM
10301 REM  SET CARDS
10302 REM  CN = CARD NUMBER  R= ROW  C= COLUMN
10303 REM  H=HIDDEN CARDS 1=YES 2=NO
10304 REM
10310 FOR CN= 1TO 15
10312 FOR N= 1TO 75
10314 N(N)= 0
10316 NEXT N
10320 FOR R= 1TO 5
10330 FOR C= 1TO 5
10340 N= INT ((15* RND (1)+ 1)+ 15* (R- 1))
10342 IF N(N)< > 0THEN 10340
10344 N(N)= N
10350 B(CN,R,C)= N:W(CN,R,C)= 0
10360 IF R= 3AND C= 3THEN N= 0
10370 IF N= 0THEN B(CN,3,3)= 0:W(CN,3,3)= 1
10380 B$= RIGHT$ (STR$ (N+ 100),2)
10390 IF N= 0THEN B$= "FR"
10400 IF H= 1AND CN< 6THEN 10490
10410 X= 13* (CN- 1)+ 1
10420 IF X> 53THEN X= X- 65:GOTO 10420
10430 X= X+ 2* (R- 1)
10440 Y= 21
10450 IF CN< 11THEN Y= 11
10460 IF CN< 6THEN Y= 1
10470 Y= Y+ C
10472 IF R= 1OR R= 3OR R= 5THEN PLOT 29,19
10474 IF R= 2OR R= 4THEN PLOT 29,18
10480 PLOT 3,X,Y:PRINT B$
10490 NEXT C
10500 NEXT R
10510 NEXT CN
10520 FOR N= 1TO 75
10530 N(N)= 0
10540 NEXT N
10550 RETURN
11000 REM
11001 REM  GET NUMBER
11002 REM
11010 R= INT (5* RND (1)+ 1)
11020 N= INT ((15* RND (1)+ 1)+ 15* (R- 1))
11030 IF N(N)< > 0THEN 11010
11040 PLOT 3,0,29,11
11050 PRINT "UNDER THE ";
11060 ON RGOTO 11070,11090,11110,11130,11150
11070 PRINT "B ROW ";:GOTO 11170
11090 PRINT "I ROW ";:GOTO 11170
11110 PRINT "N ROW ";:GOTO 11170
11130 PRINT "G ROW ";:GOTO 11170
11150 PRINT "O ROW ";
11170 PRINT "THE NUMBER IS ";N
11180 N(N)= N
11190 RETURN
11300 REM
11301 REM  CHECK THE NUMBER
11302 REM
11310 FOR CN= 1TO 15
11320 YS= 0
11330 FOR C= 1TO 5
11340 IF B(CN,R,C)= NTHEN W(CN,R,C)= 1:YS= C
11350 NEXT C
11360 IF YS= 0THEN 11480
11370 X= 13* (CN- 1)+ 1
11380 IF X> 53THEN X= X- 65:GOTO 11380
11390 X= X+ 2* (R- 1)
11400 Y= 21
11410 IF CN< 11THEN Y= 11
11420 IF CN< 6THEN Y= 1
11430 Y= Y+ YS
11440 PLOT 3,X,Y,29,17
11450 B$= RIGHT$ (STR$ (N+ 100),2)
11460 PRINT B$
11470 PLOT 29,23
11480 NEXT CN
11490 RETURN
11600 REM
11601 REM  CHECK FOR BINGO
11602 REM
11610 FOR CN= 1TO 15
11620 FOR R= 1TO 5
11630 W(CN,R,0)= 0
11640 FOR C= 1TO 5
11650 W(CN,R,0)= W(CN,R,0)+ W(CN,R,C)
11660 NEXT C
11670 IF W(CN,R,0)= 5THEN NB(CN,R)= 1
11680 NEXT R
11690 FOR C= 1TO 5
11700 W(CN,0,C)= 0
11710 FOR R= 1TO 5
11720 W(CN,0,C)= W(CN,0,C)+ W(CN,R,C)
11730 NEXT R
11740 IF W(CN,0,C)= 5THEN NB(CN,C+ 5)= 1
11745 NEXT C
11750 NB(CN,11)= 0
11760 FOR R= 1TO 5
11770 NB(CN,11)= NB(CN,11)+ W(CN,R,R)
11780 NEXT R
11790 IF NB(CN,11)< 5THEN NB(CN,11)= 0
11800 IF NB(CN,11)= 5THEN NB(CN,11)= 1
11810 NB(CN,12)= 0
11820 FOR R= 1TO 5
11830 NB(CN,12)= NB(CN,12)+ W(CN,R,6- R)
11840 NEXT R
11850 IF NB(CN,12)< 5THEN NB(CN,12)= 0
11860 IF NB(CN,12)= 5THEN NB(CN,12)= 1
11870 NB(CN,0)= 0
11880 FOR J= 1TO 12
11890 NB(CN,0)= NB(CN,0)+ NB(CN,J)
11900 NEXT J
11910 NEXT CN
11920 NB(0,0)= 0
11930 FOR J= 1TO 15
11940 NB(0,0)= NB(0,0)+ NB(J,0)
11950 NEXT J
11960 RETURN