179 lines
6.6 KiB
Plaintext
179 lines
6.6 KiB
Plaintext
10 DIM V(26): DIM CV(26)
|
|
20 DIM CTG(9): DIM CA(26): DIM VA(26)
|
|
22 DIM OM(9)
|
|
23 RS = 0:CO = 1
|
|
25 R = 1:D = 0: DIM RO(9)
|
|
30 FOR A = 0 TO 25
|
|
40 CA(A) = 1:VA(A) = - 1
|
|
50 READ V(A): REM CASE VALUES
|
|
60 NEXT A
|
|
70 FOR A = 0 TO 25
|
|
75 PRINT "LOADING CASE #";A + 1
|
|
80 VC = INT ( RND (1) * 26)
|
|
90 IF VA(VC) = - 1 THEN CV(A) = VC
|
|
100 IF VA(VC) < > - 1 THEN GOTO 80
|
|
110 VA(VC) = 1: NEXT A
|
|
115 IF RS = 1 THEN RS = 0: GOTO 200
|
|
120 FOR A = 0 TO 8: READ CTG(A): NEXT A
|
|
130 FOR A = 0 TO 8: READ OM(A): NEXT A
|
|
140 FOR A = 0 TO 8: PRINT OM(A): NEXT A
|
|
200 REM *** DRAW SCREEN FROM START ***
|
|
210 HOME
|
|
220 FOR A = 0 TO 12
|
|
225 VTAB 1 + A: HTAB 8 - LEN ( STR$ (V(A)))
|
|
230 IF VA(A) = 1 THEN PRINT "$";V(A)
|
|
235 VTAB 1 + A: HTAB 40 - LEN ( STR$ (V(A + 13)))
|
|
240 IF VA(A + 13) = 1 THEN PRINT "$";V(A + 13)
|
|
250 NEXT A
|
|
300 REM *** DRAW CASES ***
|
|
310 FOR A = 0 TO 12
|
|
320 VTAB 15: HTAB A * 3 + 1
|
|
330 IF CA(A) = 1 AND A + 1 < 10 THEN PRINT " ";A + 1
|
|
340 IF CA(A) = 1 AND A + 1 > 9 THEN PRINT A + 1
|
|
350 VTAB 16: HTAB A * 3 + 1
|
|
360 IF CA(A + 13) = 1 THEN PRINT A + 14
|
|
370 NEXT A
|
|
380 VTAB 18: HTAB 2: INPUT "PICK A CASE >";CTP
|
|
400 CA(CTP - 1) = 0
|
|
500 REM *** GAME LOOP ***
|
|
510 HOME
|
|
520 FOR A = 0 TO 12
|
|
525 VTAB 1 + A
|
|
526 IF VA(A) = 0 THEN HTAB 1: PRINT " "
|
|
530 IF VA(A) = 1 THEN HTAB 8 - LEN ( STR$ (V(A))): PRINT "$";V(A)
|
|
534 VTAB 1 + A
|
|
535 IF VA(A + 13) = 0 THEN HTAB 32: PRINT " "
|
|
540 IF VA(A + 13) = 1 THEN HTAB 40 - LEN ( STR$ (V(A + 13))): PRINT "$";V(A + 13)
|
|
550 NEXT A
|
|
600 REM *** DRAW CASES AGAIN ***
|
|
610 FOR A = 0 TO 12
|
|
620 VTAB 15: HTAB A * 3 + 1
|
|
630 IF CA(A) = 1 AND A + 1 < 10 THEN PRINT " ";A + 1
|
|
640 IF CA(A) = 1 AND A + 1 > 9 THEN PRINT A + 1
|
|
645 IF CA(A) = 0 THEN PRINT ".."
|
|
650 VTAB 16: HTAB A * 3 + 1
|
|
660 IF CA(A + 13) = 1 THEN PRINT A + 14
|
|
665 IF CA(A + 13) = 0 THEN PRINT ".."
|
|
670 NEXT A
|
|
700 VTAB 18: HTAB 2: PRINT "ROUND ";R;": ";CTG(R - 1);" CASES TO GO"
|
|
705 IF CTG(R - 1) = 0 THEN GOTO 800
|
|
710 VTAB 19: HTAB 2: INPUT "PICK A CASE TO ELIMINATE: ";CE
|
|
715 IF CE = 0 THEN GOTO 510
|
|
720 IF CE < 1 OR CE > 26 OR CA(CE - 1) = 0 THEN GOTO 710
|
|
730 VTAB 3: HTAB 11
|
|
735 PRINT "........": VTAB 3: HTAB 11
|
|
740 PRINT "$";V(CV(CE - 1))
|
|
750 CA(CE - 1) = 0
|
|
755 VA(CV(CE - 1)) = 0
|
|
760 CTG(R - 1) = CTG(R - 1) - 1
|
|
770 IF CTG(R - 1) > - 1 THEN GOTO 520
|
|
800 REM *** BANK OFFER ***
|
|
810 FOR A = 18 TO 19: VTAB A: HTAB 1: FOR B = 1 TO 40: PRINT " ";: NEXT B: NEXT A
|
|
820 IF D > 0 THEN VTAB 18: HTAB 2: PRINT "THE BANK WOULD HAVE OFFERED YOU": GOTO 835
|
|
830 VTAB 18: HTAB 2: PRINT "THE BANK WISHES TO BUY YOUR CASE FOR"
|
|
835 VT = 0:CC = 0
|
|
840 FOR A = 0 TO 25
|
|
850 IF VA(A) = 1 THEN VT = VT + V(A):CCC = CC + 1
|
|
860 VTAB 19: HTAB 2: PRINT "$ ": VTAB 19: HTAB 2: PRINT "$"; INT (VT)
|
|
870 NEXT A
|
|
880 VT = VT / CC
|
|
890 VTAB 19: HTAB 2: PRINT "$ ": VTAB 19: HTAB 2: PRINT "$"; INT (VT)
|
|
900 O = INT (VT * OM(R - 1))
|
|
904 O = O * (1 + ( INT ( RND (1) * 40) - 20) / 100)
|
|
905 IF O > 9999 THEN O = INT (O / 1000) * 1000
|
|
906 IF O > 999 AND O < 10000 THEN O = INT (O / 100) * 100
|
|
907 RO(R - 1) = O
|
|
910 VTAB 19: HTAB 2: PRINT "$ ": VTAB 19: HTAB 2: PRINT "$";O
|
|
915 IF D > 0 THEN GOTO 921
|
|
920 VTAB 20: HTAB 2: PRINT "(D)EAL OR (N)O DEAL?"
|
|
921 FOR A = 0 TO R - 1
|
|
922 VTAB 2 + A: HTAB 25
|
|
923 IF D = A + 1 THEN INVERSE
|
|
924 IF D < > A + 1 THEN NORMAL
|
|
925 PRINT "$";RO(A)
|
|
926 NEXT A
|
|
927 NORMAL
|
|
928 IF D > 0 THEN FOR X = 1 TO 1000: NEXT X: GOTO 950
|
|
930 GET PAK$: IF PAK$ < > "D" AND PAK$ < > "N" AND PAK$ < > "C" THEN GOTO 970
|
|
940 IF PAK$ = "D" AND D = 0 THEN D = R
|
|
945 IF PAK$ = "C" AND CO = 1 THEN GOTO 4000
|
|
950 R = R + 1
|
|
955 IF R = 10 THEN GOTO 2000
|
|
960 FOR A = 17 TO 20: VTAB A: HTAB 1: FOR B = 1 TO 40: PRINT " ";: NEXT B: NEXT A
|
|
970 GOTO 520
|
|
1000 DATA 1,2,5,10,25,50,75,100,200,300,400,500,750,1000,5000,10000,25000,50000,75000,100000,200000,300000,400000,500000,750000,1000000
|
|
1010 DATA 6,5,4,3,2,1,1,1,1
|
|
1020 DATA .15,.30,.65,.80,.90,.95,1,1,1
|
|
2000 REM *** END OF GAME ***
|
|
2005 IF D > 0 THEN GOTO 3000
|
|
2010 FOR A = 17 TO 21: VTAB A: HTAB 1: FOR B = 1 TO 40: PRINT " ";: NEXT B: NEXT A
|
|
2020 CR = 0
|
|
2030 FOR A = 0 TO 25
|
|
2032 IF CA(A) = 1 THEN CR = A
|
|
2034 NEXT A
|
|
2040 VTAB 18: HTAB 2: PRINT "ONE FINAL DECISION."
|
|
2050 VTAB 19: HTAB 2: PRINT "YOU CAN EITHER HAVE YOUR CASE, ";CTP;"..."
|
|
2060 VTAB 20: HTAB 2: PRINT "(PRESS ANY KEY)"
|
|
2070 GET PAK$
|
|
2080 FOR A = 17 TO 23: VTAB A: HTAB 1: FOR B = 1 TO 40: PRINT " ";: NEXT B: NEXT A
|
|
2090 VTAB 18: HTAB 2: PRINT "OR YOU CAN SWAP IT WITH CASE # ";CR + 1;"."
|
|
2100 VTAB 20: HTAB 2: PRINT "(PRESS ANY KEY)"
|
|
2110 GET PAK$
|
|
2120 FOR A = 17 TO 23: VTAB A: HTAB 1: FOR B = 1 TO 40: PRINT " ";: NEXT B: NEXT A
|
|
2130 VTAB 18: HTAB 2: PRINT "<S>WAP OR <N>O SWAP?"
|
|
2140 GET PAK$
|
|
2150 IF PAK$ < > "S" AND PAK$ < > "N" THEN GOTO 2140
|
|
2160 IF PAK$ = "S" THEN SN = 1
|
|
2170 IF PAK$ = "N" THEN SN = 0
|
|
2180 IF SN = 1 THEN CTP = CR + 1
|
|
3000 HOME
|
|
3010 VTAB 2: HTAB 2
|
|
3020 IF D = 0 THEN PRINT "YOU HOLD CASE # ";CTP;"."
|
|
3030 IF D > 0 THEN PRINT "YOU MADE A DEAL FOR $";RO(D - 1);"."
|
|
3040 FOR A = 1 TO 1000: NEXT A
|
|
3050 VTAB 10: HTAB 2: PRINT "YOUR CASE CONTAINS..."
|
|
3060 VTAB 12: HTAB 2: PRINT "/--------\"
|
|
3070 VTAB 13: HTAB 2: PRINT "[########]"
|
|
3075 IF CTP < 10 THEN VTAB 13: HTAB 7
|
|
3076 IF CTP > 9 THEN VTAB 13: HTAB 6
|
|
3077 PRINT CTP
|
|
3080 VTAB 14: HTAB 2: PRINT "\--------/"
|
|
3090 FOR A = 1 TO 2000: NEXT A
|
|
3100 VTAB 13: HTAB 2: PRINT "[ ]"
|
|
3120 FOR A = 1 TO 100: NEXT A
|
|
3130 VTAB 13: HTAB 3: PRINT "$";V(CV(CTP - 1))
|
|
3140 FOR A = 1 TO 1000: NEXT A
|
|
3150 VTAB 18: HTAB 2: PRINT "PLAY AGAIN?"
|
|
3160 VTAB 19: HTAB 2: PRINT "<Y>ES OR <N>O"
|
|
3170 GET PAK$
|
|
3180 IF PAK$ < > "Y" AND PAK$ < > "N" THEN GOT3170
|
|
3190 IF PAK$ = "Y" THEN GOTO 3210
|
|
3200 IF PAK$ = "N" THEN END
|
|
3210 FOR A = 0 TO 25
|
|
3220 CA(A) = 1:VA(A) = - 1:R = 1:D = 0
|
|
3230 IF A < 10 THEN RO(A) = 0
|
|
3240 NEXT A
|
|
3250 RS = 1
|
|
3260 CTG(0) = 6:CTG(1) = 5:CTG(2) = 4:CTG(3) = 3:CTG(4) = 2
|
|
3270 FOR A = 5 TO 8:CTG(A) = 1: NEXT A
|
|
3280 GOTO 70
|
|
4000 REM *** COUNTER OFFER ***
|
|
4005 IF CO = 1 THEN CO = 0
|
|
4010 VTAB 20: HTAB 2: PRINT " "
|
|
4020 VTAB 20: HTAB 2: INPUT "HOW MUCH? >";COO
|
|
4030 PO = 1 + ( INT ( RND (1) * 15) + 15) / 100
|
|
4040 IF COO > 0 AND COO > ( INT (VT * OM(R - 1))) * PO THEN GOTO 4100
|
|
4050 VTAB 21: HTAB 2: PRINT "THE BANKER SAYS..."
|
|
4060 FOR A = 1 TO 1000: NEXT A
|
|
4070 VTAB 21: HTAB 2: PRINT "DEAL."
|
|
4075 FOR A = 1 TO 3000: NEXT A
|
|
4076 VTAB 21: HTAB 2: PRINT " "
|
|
4080 D = R:RO(R - 1) = COO
|
|
4090 GOTO 950
|
|
4100 VTAB 21: HTAB 2: PRINT "THE BANKER SAYS..."
|
|
4110 FOR A = 1 TO 1000: NEXT A
|
|
4120 VTAB 21: HTAB 2: PRINT "NO DEAL. "
|
|
4125 FOR A = 1 TO 3000: NEXT A
|
|
4126 VTAB 21: HTAB 2: PRINT " "
|
|
4130 GOTO 950
|