Kasino Kraps is a casino-style craps dice game that simulates a full craps table layout drawn entirely with inverse-video characters and block graphics. The program supports multiple simultaneous bet types including Pass Line, Don’t Come, Field, Hardways (4, 6, 8, and 10), Any Craps, Any 7, and Big 6/8, each mapped to a keyboard letter for quick input. Dice are rendered on-screen using asterisk characters positioned within block-graphic frames, with separate display routines for each face value of both dice. Payouts follow standard casino odds — hardways pay 7:1 or 9:1 depending on the number, Any 7 pays 4:1, Any Craps pays 7:1, and Field bets pay 1:1, 2:1, or 3:1 based on the roll. The Don’t Come bet implements a two-roll tracking mechanism using variables D1 and D3 to remember the established point across subsequent rolls.
Program Analysis
Program Structure
The program is organized into several broad functional regions:
- Lines 9–26: Instruction screen displayed in inverse video, explaining the betting interface.
- Lines 30–60: Variable initialization block (all bet amounts and state flags zeroed).
- Lines 100–249: Main table layout rendering using inverse video and block graphics, drawing the craps layout with labeled betting areas.
- Lines 255–315: Main input dispatch loop — polls
INKEY$and routes to subroutine-like blocks viaGOTO. - Lines 350–800: Dice roll generation and graphical dice face rendering for both dice.
- Lines 800–851: Post-roll bet evaluation dispatcher — checks each active bet flag in priority order.
- Lines 900–2150: Individual bet entry routines (Pass, Don’t Come, Any Craps, Any 7, Hardways, Field, Any Craps K-bet, Big 6/8, Easy 8/6).
- Lines 2300–2645: Payout/loss resolution for Any 7, Hardways, Any Craps, and Field bets.
- Lines 3000–4080: Resolution for Easy 8 (
E) and Big 6 (S) bets. - Lines 5000–6002: Pass Line bet logic with point establishment and tracking.
- Lines 7000–9011: Don’t Come bet logic with two-roll state machine.
Bet Types and Key Mappings
| Key | Bet Type | Variable | Payout |
|---|---|---|---|
| P | Pass Line | P | 1:1 (natural/point) |
| D | Don’t Come | D | 1:1 (craps)/loss on 7 or 11 |
| F | Field | F | 1:1, 2:1 (2), 3:1 (12) |
| H | Hardways (4/6/8/10) | H1–H4 | 7:1 or 9:1 |
| K | Any Craps | K | 7:1 |
| V | Any 7 | V | 4:1 |
| E | Easy 8 | E | 1:1 |
| S | Big 6 | S | 1:1 |
| R | Roll dice | — | — |
Dice Face Rendering
Each die is drawn independently. Die A is rendered at column 22–24 and die B at column 26–29, both within a block-graphic frame printed at lines 502–509. Separate GOTO chains at lines 511–516 and 700–706 dispatch to face-specific drawing routines (lines 610–660 for die A, 710–760 for die B). Each routine prints asterisk characters at specific AT positions to represent the pips. Notably, faces 3 and 5 reuse face 2 and 4 code respectively via GOTO fall-through (lines 630→620, 650→640, 730→710, 750→710), and face 5 also adds a center pip by calling face 1’s routine (line 642→610).
State Machine for Don’t Come Bet
The Don’t Come bet (lines 7000–9011) uses a two-variable state machine: D1 tracks whether a point has been established (0 = no point, 1 = point set), and D3 stores the established point number. On the first roll after betting, if a 2 is thrown the bet is voided (line 7111); 3 or 12 wins (line 7500); 7 or 11 loses (line 7600); any other number establishes the point. On subsequent rolls, rolling the point loses and rolling 7 wins — the inverse of the Pass Line. Lines 9000–9010 display the bet amount at the correct column on row 2 based on which point value was established.
Pass Line Logic
The Pass Line uses variables P (bet amount), P1 (the established point), and U (a flag indicating whether a point has been set). On the come-out roll (U=0), P1 is set to the current total W. A 7 or 11 wins immediately (line 5600); 2, 3, or 12 loses (line 5700). Any other number sets the point and increments U. On subsequent rolls (line 6000), a 7 loses and matching P1 wins.
Hardways Bet Logic
The Hardways bets (lines 2400–2473) check not just the total W but also die value A to confirm the hard way was thrown (e.g., hard 4 requires A=2, implying B=2 as well). A 7 clears all four hardways bets. Wins pay 7:1 for hard 4 and 10, and 9:1 for hard 6 and 8. Lines 2457–2472 chain through all four hardways variables to deduct losses when a 7 is rolled.
Field Bet Payouts
The Field bet (lines 2600–2645) wins on 2 (pays 2:1), 12 (pays 3:1), and 3, 4, 9, 10, or 11 (pays 1:1). Rolls of 5, 6, 7, or 8 lose the Field bet. This is consistent with standard casino Field bet rules, though real tables sometimes pay 2:1 on 12; here 12 pays 3:1.
Key BASIC Idioms and Techniques
- The main input loop (lines 303–315) uses the
PAUSE 0/INKEY$idiom in a different form: line 303 waits for the key to be released and line 304 waits for a key to be pressed, preventing key repeat from triggering multiple actions. INT(RND*6)+1is used at lines 350–351 to generate fair six-sided die rolls.- All monetary display uses variable
Minitialized to 1000 (line 106), representing a starting bankroll of $1000. - Line 249 uses
GOTO 255skipping the barePRINTat line 250, which appears to be vestigial dead code. - Bets are validated to a $100 maximum with input loops (e.g., lines 907, 1006, 1206) using
IF >100 THEN GOTOto re-prompt. - Variable
C1is set to zero at line 2251 but the Come bet (C) input at lines 1100–1110 collects both a point (C) and amount (C1) yet neither is evaluated in any payout routine, making the Come bet effectively unimplemented.
Bugs and Anomalies
- The Come bet (key C, lines 1100–1150) inputs values but no resolution code references
CorC1in the payout dispatcher, making it a non-functional placeholder. - Line 2251 (
LET C1=0) appears between two unrelated sections and is unreachable — it falls between the Any 7 and Hardways resolution blocks with no branch leading to it. - Lines 730 and 750 both jump to line 710 (face 1 pip pattern) for die B faces 3 and 5, which is incorrect — face 3 should show two pips plus one center, and face 5 should show four corner pips plus center. This is the same structural approach used for die A but die A’s face 5 correctly chains through 640 then 610; die B’s face 5 at line 750 only calls 710, producing a face-1 display.
- Lines 839–842 clear hardways variables on non-hardway rolls of those totals, but lines 836 and 841 both clear
H3on a roll of 8, making the second assignment redundant. - At line 2412 the check
IF H1=0 THEN GOTO 809comes after the winnings are added at line 2413, meaning the zero-check is in the wrong order — a zero bet would still add zero toMbefore being caught. - Line 8518 executes
LET M=(M-D)afterDhas already been set to zero at line 8516, making the deduction always zero; this code path is effectively a no-op loss handler.
Content
Source Code
9 FAST
10 FOR O=1 TO 20
11 PRINT AT O,0;"% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % "
12 NEXT O
13 PRINT AT 1,0;"%T%O% %E%N%T%E%R% %B%E%T% %P%R%E%S%S% %C%O%R%R%E%S%P%O%N%D%I%N%G"
14 PRINT AT 2,0;"%L%E%T%T%E%R% %I%N% %(% %)% %T%H%A%T% %I%S% %N%E%X%T% %T%O"
15 PRINT AT 3,0;"%B%E%T%.% %N%O%W% %Y%O%U% %A%R%E% %R%E%A%D%Y% %T%O% %E%N%T%E%R"
16 PRINT AT 4,0;"%I%N% %T%H%E% %A%M%O%U%N%T% %Y%O%U% %W%I%S%H% %T%O% %B%E%T%."
17 PRINT AT 10,0;"%T%O% %R%O%L%L% %D%I%C%E% %P%R%E%S%S% %"%R%"%."
18 PRINT AT 6,0;"%T%O% %B%E%T% %H%A%R%D%W%A%Y%S% %P%R%E%S%S% %"%H%"% %T%H%E%N"
19 PRINT AT 7,0;"%E%N%T%E%R% %I%N% %4%,%6%,%8% %O%R% %1%0%.% %N%O%W% %E%N%T%E%R% %I%N% %A%M%O%U%N%T% %O%F% %B%E%T%."
20 PRINT AT 12,0;"%M%I%N%I%M%U%M% %B%E%T% %I%S% %$%1% % % % % % % % % % % % % % % %M%A%X%I%M%U%M% %B%E%T% %I%S% %$%1%0%0"
21 PRINT AT 15,7;"%O%N%E% %T%I%M%E% %B%E%T%S% %A%R%E% % "
22 PRINT AT 16,0;"%A%N%Y% %C%R%A%P%S% % %A%N%Y% %7% % %A%N%D% % %T%H%E% %F%I%E%L%D"
25 PRINT AT 18,10;"PRESS ENTER"
26 INPUT A$
30 LET K=0
31 LET F=0
32 LET Q=0
33 LET H1=0
34 LET H2=0
35 LET H3=0
36 LET H4=0
37 LET E3=0
38 LET P1=0
40 LET A=0
41 LET D1=0
42 LET D3=0
44 LET U=0
45 LET C=0
46 LET H=0
50 LET D=0
55 LET P=0
56 LET E=0
57 LET S=0
60 LET V=0
100 FAST
101 LET B$="X"
105 FOR O=1 TO 20
106 LET M=1000
107 PRINT AT 21,9;M
110 PRINT AT O,0;"% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % "
111 NEXT O
120 PRINT AT 21,0;"BETS FROM $1 TO $100"
132 PRINT AT 3,0;": % % % % : % % % % : % % % % : % % % % : % % % % : % % % % % :"
133 PRINT AT 2,0;": % % % % : % % % % : % % % % : % % % % : % % % % : % % % % % :"
134 PRINT AT 1,3;"%4"
135 PRINT AT 1,8;"%5"
136 PRINT AT 1,13;"%6"
137 PRINT AT 1,18;"%8"
139 PRINT AT 1,23;"%9"
140 PRINT AT 1,27;"%1%0"
145 PRINT AT 4,0;"................................................................"
150 PRINT AT 5,1;"% % % % % % % % % %(%D%)% %D%O%N%T% %C%O%M%E% % % % % % % % % % "
155 PRINT AT 6,0;"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''"
156 PRINT AT 7,6;"%(%E%)% % % %(%S%)"
160 PRINT AT 8,0;"% % % % % % % %8% %B%I%G% %6"
161 PRINT AT 9,0;"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''"
162 PRINT AT 7,21;"%A%N%Y% %7% %(%V%)"
163 PRINT AT 8,22;"%4%:%1"
170 PRINT AT 18,0;"........................................"
171 PRINT AT 19,2;"%P%A%S%S% %L%I%N%E"
172 PRINT AT 17,0;"%2% % % % % % % % % % % % % % % % %1%2"
173 PRINT AT 16,2;"%3% % % % % % % % % % % %1%1"
174 PRINT AT 20,2;"%(%P%)"
175 PRINT AT 15,5;"%4% % %9% % %1%0"
176 PRINT AT 14,0;"''''''''''''''''''''''''''''''''''''''''"
177 FOR O=10 TO 20
178 PRINT AT 16,4;"%(%F%)% %F%I%E%L%D"
180 PRINT AT O,20;" :"
181 NEXT O
200 PRINT AT 10,4;"%(%H%)% %H%A%R%D%W%A%Y%S"
210 PRINT AT 11,2;"%6% % % % % %9%:%1% % % % % %8"
212 PRINT AT 13,2;"%4% % % % % %7%:%1% % % % % %1%0"
216 PRINT AT 10,22;"%A%N%Y% %C%R%A%P%S"
221 PRINT AT 11,21;"%(%K%)% %2%,%3%,%1%2"
222 PRINT AT 12,25;"%7%:%1"
224 PRINT AT 15,21;"####################"
225 PRINT AT 19,21;"####################"
226 PRINT AT 16,21;"## ## ####"
227 PRINT AT 17,21;"## ## ####"
228 PRINT AT 18,21;"## ## ####"
249 GOTO 255
250 PRINT
255 PRINT AT 21,22;"$";M;" "
302 SLOW
303 IF INKEY$<>"" THEN GOTO 303
304 IF INKEY$="" THEN GOTO 304
305 IF INKEY$="P" THEN GOTO 900
306 IF INKEY$="D" THEN GOTO 1000
307 IF INKEY$="C" THEN GOTO 1100
308 IF INKEY$="V" THEN GOTO 1200
309 IF INKEY$="H" THEN GOTO 1300
310 IF INKEY$="K" THEN GOTO 1500
311 IF INKEY$="Y" THEN GOTO 1600
312 IF INKEY$="R" THEN GOTO 350
313 IF INKEY$="F" THEN GOTO 1400
314 IF INKEY$="S" THEN GOTO 2000
315 IF INKEY$="E" THEN GOTO 2100
350 LET A=INT (RND*6)+1
351 LET B=INT (RND*6)+1
502 PRINT AT 15,21;"####################"
503 PRINT AT 19,21;"####################"
504 PRINT AT 16,21;"## ## ####"
506 PRINT AT 17,21;"## ## ####"
509 PRINT AT 18,21;"## ## ####"
511 IF A=1 THEN GOTO 610
512 IF A=2 THEN GOTO 620
513 IF A=3 THEN GOTO 630
514 IF A=4 THEN GOTO 640
515 IF A=5 THEN GOTO 650
516 IF A=6 THEN GOTO 660
610 PRINT AT 17,23;"*"
611 IF A=3 THEN GOTO 700
612 GOTO 700
620 PRINT AT 16,22;"*"
621 PRINT AT 18,24;"*"
622 IF A=3 THEN GOTO 631
623 GOTO 700
630 GOTO 620
631 GOTO 610
640 PRINT AT 16,22;"* *"
641 PRINT AT 18,22;"* *"
642 IF A=5 THEN GOTO 610
647 GOTO 700
650 GOTO 640
660 PRINT AT 17,22;"* *"
661 GOTO 640
700 IF B=1 THEN GOTO 710
701 IF B=2 THEN GOTO 720
702 IF B=3 THEN GOTO 730
703 IF B=4 THEN GOTO 740
705 IF B=5 THEN GOTO 750
706 IF B=6 THEN GOTO 760
710 PRINT AT 17,27;"*"
711 IF B=3 THEN GOTO 720
712 IF B=5 THEN GOTO 740
715 GOTO 800
720 PRINT AT 16,26;"*"
721 PRINT AT 18,28;"*"
728 GOTO 800
730 GOTO 710
740 PRINT AT 16,26;"* *"
741 PRINT AT 18,26;"* *"
748 GOTO 800
750 GOTO 710
760 PRINT AT 17,26;"* *"
761 GOTO 740
800 LET W=A+B
801 IF K>0 THEN GOTO 2500
802 IF F>0 THEN GOTO 2600
803 IF H1>0 THEN GOTO 2400
804 IF D1>0 THEN GOTO 2400
805 IF H2>0 THEN GOTO 2400
806 IF H3>0 THEN GOTO 2400
807 IF H4>0 THEN GOTO 2400
809 IF V>0 THEN GOTO 2300
810 IF C>0 THEN GOTO 2200
815 GOTO 816
816 IF E>0 THEN GOTO 3000
817 IF S>0 THEN GOTO 4000
820 IF P>0 THEN GOTO 5000
822 IF D>0 THEN GOTO 7000
823 PAUSE 50
824 PRINT AT 17,4;"% % % % % % % "
825 PRINT AT 13,23;"% % % % % % "
827 LET K=0
830 IF W=7 THEN PRINT AT 8,0;"% % % % % % ";AT 5,5;"% % % % ";AT 11,3;"% % % % % ";AT 13,3;"% % % % % ";AT 11,11;"% % % % % ";AT 13,11;"% % % % % "
832 IF W=8 THEN LET E=0
833 IF W=6 THEN LET S=0
834 IF W=6 THEN PRINT AT 8,15;"% % % % % % ";AT 11,3;"% % % % % "
835 IF W=8 THEN PRINT AT 8,0;"% % % % % % % ";AT 11,11;"% % % % % "
836 IF W=8 THEN LET H3=0
837 IF W=10 THEN PRINT AT 13,11;"% % % % % "
838 IF W=4 THEN PRINT AT 13,3;"% % % % % "
839 IF W=4 THEN LET H1=0
840 IF W=6 THEN LET H2=0
841 IF W=8 THEN LET H3=0
842 IF W=10 THEN LET H4=0
845 PRINT AT 8,25;"% % % % % % "
851 GOTO 250
900 IF P>0 THEN GOTO 303
901 PRINT AT 19,12;"$"
905 INPUT P
906 LET E3=0
907 IF P>100 THEN GOTO 905
908 LET P=INT (P)
910 PRINT AT 19,13;P
950 GOTO 250
1000 IF D1>0 THEN GOTO 823
1001 LET D1=0
1004 PRINT AT 5,24;"$"
1005 INPUT D
1006 LET D=INT (D)
1007 IF D>100 THEN GOTO 1005
1010 PRINT AT 5,25;D
1050 GOTO 250
1100 PRINT AT 5,5;"C"
1101 INPUT C
1102 PRINT AT 5,5;C
1103 PRINT AT 5,8;"$"
1105 INPUT C1
1110 PRINT AT 5,9;C1
1150 GOTO 250
1200 PRINT AT 8,26;"$"
1205 INPUT V
1206 IF V>100 THEN GOTO 1205
1207 LET V=INT (V)
1210 PRINT AT 8,27;V
1250 GOTO 250
1300 PRINT AT 10,3;"H"
1305 INPUT Z
1306 PRINT AT 10,3;"% "
1307 IF Z=4 THEN GOTO 1340
1308 IF Z=6 THEN GOTO 1360
1309 IF Z=8 THEN GOTO 1380
1310 IF Z=10 THEN GOTO 1390
1311 GOTO 1300
1340 PRINT AT 13,4;"$"
1341 INPUT H1
1342 IF H1>100 THEN GOTO 1341
1343 LET H1=INT (H1)
1344 PRINT AT 13,5;H1
1345 GOTO 250
1360 PRINT AT 11,4;"$"
1361 INPUT H2
1363 IF H2>100 THEN GOTO 1361
1364 LET H2=INT (H2)
1365 PRINT AT 11,5;H2
1366 GOTO 250
1367 GOTO 250
1380 PRINT AT 11,12;"$"
1381 INPUT H3
1382 IF H3>100 THEN GOTO 1381
1383 LET H3=INT (H3)
1384 PRINT AT 11,13;H3
1385 GOTO 250
1390 PRINT AT 13,12;"$"
1391 INPUT H4
1393 IF H4>100 THEN GOTO 1391
1394 LET H4=INT (H4)
1395 PRINT AT 13,13;H4
1396 GOTO 250
1400 PRINT AT 17,5;"$"
1401 INPUT F
1402 IF F>100 THEN GOTO 1401
1403 LET F=INT (F)
1405 PRINT AT 17,6;F
1450 GOTO 250
1500 PRINT AT 13,24;"$"
1505 INPUT K
1506 IF K>100 THEN GOTO 1505
1507 LET K=INT (K)
1520 PRINT AT 13,25;K
1550 GOTO 250
2000 PRINT AT 8,16;"$"
2005 INPUT S
2006 IF S>100 THEN GOTO 2005
2007 LET S=INT (S)
2010 PRINT AT 8,17;S
2050 GOTO 250
2100 PRINT AT 8,2;"$"
2105 INPUT E
2106 IF E>100 THEN GOTO 2105
2107 LET E=INT (E)
2110 PRINT AT 8,3;E
2150 GOTO 250
2251 LET C1=0
2300 IF W=7 THEN GOTO 2350
2305 IF W<>7 THEN LET M=(M-V)
2306 PRINT AT 8,25;"% % % % % % "
2310 LET V=0
2315 GOTO 810
2350 PRINT AT 8,25;"W$";(V*4)
2355 LET M=M+(V*4)
2360 LET V=0
2365 GOTO 810
2400 IF W=7 THEN GOTO 2457
2405 IF W=4 THEN GOTO 2410
2406 IF W=6 THEN GOTO 2420
2407 IF W=8 THEN GOTO 2430
2408 IF W=10 THEN GOTO 2450
2409 GOTO 809
2410 IF A=2 THEN GOTO 2412
2411 GOTO 2457
2412 IF H1=0 THEN GOTO 809
2413 LET M=M+(H1*7)
2415 PRINT AT 13,3;"W"
2416 PRINT AT 13,5;(H1*7)
2417 LET H1=0
2418 GOTO 809
2420 IF A=3 THEN GOTO 2422
2421 GOTO 2462
2422 LET M=M+(H2*9)
2423 IF H2=0 THEN GOTO 809
2424 PRINT AT 11,3;"W$";(H2*9)
2425 LET H2=0
2426 GOTO 809
2430 IF A=4 THEN GOTO 2432
2431 GOTO 2467
2432 LET M=M+(H3*9)
2433 IF H3=0 THEN GOTO 809
2434 PRINT AT 11,11;"W$";(H3*9)
2444 LET H3=0
2445 GOTO 809
2450 IF A=5 THEN GOTO 2452
2451 GOTO 2471
2452 LET M=M+(H4*7)
2453 IF H4=0 THEN GOTO 809
2454 PRINT AT 13,11;"W$";(H4*7)
2455 LET H4=0
2456 GOTO 809
2457 LET M=(M-H1)
2458 LET H1=0
2459 IF W=7 THEN GOTO 2462
2460 GOTO 809
2462 LET M=(M-H2)
2463 LET H2=0
2464 IF W=7 THEN GOTO 2467
2465 GOTO 809
2467 LET M=(M-H3)
2468 LET H3=0
2469 IF W=7 THEN GOTO 2471
2470 GOTO 809
2471 LET M=(M-H4)
2472 LET H4=0
2473 GOTO 809
2500 IF W=2 THEN GOTO 2530
2501 IF W=3 THEN GOTO 2530
2502 IF W=12 THEN GOTO 2530
2503 PRINT AT 13,23;"% % % % % % "
2504 LET M=(M-K)
2510 GOTO 802
2530 PRINT AT 13,25;(K*7)
2531 LET M=M+(K*7)
2550 PRINT AT 13,23;"W"
2555 GOTO 802
2600 IF W=2 THEN GOTO 2612
2602 IF W=12 THEN GOTO 2640
2603 IF W=3 THEN GOTO 2630
2604 IF W=4 THEN GOTO 2630
2605 IF W=9 THEN GOTO 2630
2606 IF W=10 THEN GOTO 2630
2607 IF W=11 THEN GOTO 2630
2608 LET M=(M-F)
2609 PRINT AT 17,4;"% % % % % % % "
2610 LET F=0
2611 GOTO 803
2612 PRINT AT 17,6;(F*2)
2613 PRINT AT 17,4;"W"
2614 LET M=M+(F*2)
2615 LET F=0
2616 GOTO 803
2630 PRINT
2631 PRINT AT 17,4;"W"
2634 LET M=M+(F*1)
2635 LET F=0
2637 GOTO 803
2640 LET M=M+(F*3)
2641 PRINT AT 17,6;(F*3)
2642 PRINT AT 17,4;"W"
2643 LET F=0
2645 GOTO 803
3000 IF W=7 THEN GOTO 3050
3005 IF W=8 THEN GOTO 3070
3006 GOTO 817
3050 LET M=(M-E)
3055 PRINT AT 8,0;"% % % % % % "
3065 LET E=0
3069 GOTO 817
3070 LET M=(M+E)
3075 PRINT AT 8,1;"W$";E
3090 GOTO 817
4000 IF W=7 THEN GOTO 4050
4005 IF W=6 THEN GOTO 4070
4010 GOTO 820
4050 LET M=(M-S)
4055 PRINT AT 8,16;"% % % % % % "
4056 LET S=0
4057 GOTO 820
4070 PRINT AT 8,15;"W$";S
4075 LET M=(M+S)
4080 GOTO 820
5000 IF U=0 THEN LET P1=W
5001 IF P=0 THEN GOTO 822
5002 PRINT AT 19,18;P1
5014 IF U>=1 THEN GOTO 6000
5015 LET U=U+1
5500 IF W=7 THEN GOTO 5600
5501 IF W=11 THEN GOTO 5600
5503 IF W=3 THEN GOTO 5700
5504 IF W=12 THEN GOTO 5700
5505 IF W=2 THEN GOTO 5700
5506 GOTO 822
5600 LET M=(M+P)
5601 PRINT AT 19,11;"W$"
5602 PAUSE 60
5605 LET P=0
5606 LET U=0
5607 LET P1=0
5610 PRINT AT 19,11;"% % % % % % % % % "
5611 GOTO 822
5700 LET M=(M-P)
5704 LET P1=0
5705 LET P=0
5706 LET U=0
5708 PRINT AT 19,11;"% % % % % % % % % "
5709 GOTO 822
6000 IF W=7 THEN GOTO 5700
6001 IF W=P1 THEN GOTO 5600
6002 GOTO 822
7000 IF D1=0 THEN GOTO 7002
7001 GOTO 7005
7002 IF W=2 THEN GOTO 7111
7003 LET D3=W
7005 IF D1>0 THEN GOTO 8500
7100 LET D1=D1+1
7104 IF D1=1 THEN GOTO 7200
7110 GOTO 823
7111 LET D1=0
7113 LET D3=0
7115 GOTO 823
7200 IF D3=3 THEN GOTO 7500
7201 IF D3=12 THEN GOTO 7500
7205 IF D3=7 THEN GOTO 7600
7206 IF D3=11 THEN GOTO 7600
7210 GOTO 8500
7500 PRINT AT 5,23;"W$";D
7505 LET M=(M+D)
7506 LET D1=0
7507 LET D=0
7508 PAUSE 50
7509 PRINT AT 5,23;"% % % % % % "
7510 GOTO 823
7600 LET M=(M-D)
7601 LET D=0
7602 LET D1=0
7603 LET D3=0
7604 PRINT AT 5,23;"% % % % % % "
7605 GOTO 823
8500 IF D1=1 THEN GOTO 9000
8501 IF W=D3 THEN GOTO 8505
8502 IF W=7 THEN GOTO 8505
8503 GOTO 823
8505 PRINT AT 2,7;"% % % "
8506 PRINT AT 2,2;"% % % "
8507 PRINT AT 2,12;"% % % "
8508 PRINT AT 2,17;"% % % "
8509 PRINT AT 2,22;"% % % "
8510 PRINT AT 2,27;"% % % "
8511 IF W=D3 THEN GOTO 7600
8512 IF W=7 THEN GOTO 7500
8513 IF W=2 THEN GOTO 7111
8515 LET D3=0
8516 LET D=0
8517 LET D1=0
8518 LET M=(M-D)
8519 PRINT AT 5,23;"% % % % % % "
8520 GOTO 823
9000 PRINT AT 5,23;"% % % % % % "
9001 LET D1=D1+1
9005 IF D3=5 THEN PRINT AT 2,7;D
9006 IF D3=4 THEN PRINT AT 2,2;D
9007 IF D3=6 THEN PRINT AT 2,12;D
9008 IF D3=8 THEN PRINT AT 2,17;D
9009 IF D3=9 THEN PRINT AT 2,22;D
9010 IF D3=10 THEN PRINT AT 2,27;D
9011 GOTO 823
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

