A collection of casino and puzzle games behind a single menu. A scrolling message asks you to press the number of the game you want. The menu has slots for nine games, but only five are filled and the last four read NOTHING.
- 1 Las Vegas is a three-reel fruit machine. You INSERT a dollar for four credits, and each PLAY costs two. A table beside the machine shows the payouts for two and three of a kind. Four jokers can be collected, and holding all four doubles your wins for 15 turns. Three of certain symbols start a jackpot run. After a win you can HOLD reels, GAMBLE or COLLECT. The gamble cycles through double, nothing, one and a half and half until you press S. Choosing END shows what you put in and got back, your highest total, your gambling result and how many holds, gambles and turns you made.
- 2 Squares (“Rainbow Square Dance” in the listing) is a five-by-five grid of coloured blocks that starts as five solid-coloured rows and is shuffled at the start. You choose a row (1–5) or a column (6–9 and 0) and shift it from −4 to 4 steps, and try to bring the rows back. Entering 999 returns to the menu.
- 3 Qui Vive is a board game against the computer on a five-by-five board with squares A1 to E5. Each side places five checkers and then moves one checker at a time. The first player whose five checkers form one of 42 shapes, such as a row, column, diagonal, plus, X or “wing”, wins.
- 4 Boule is a nine-number roulette-style game with a $100 stake. You can bet on pairs, impairs, manque, passe, black numbers or white numbers at even money, or on a single number at 7 to 1. Number 5 is the house number and loses every bet. A bet of 0 returns to the menu.
- 5 One to Five is a three-by-three number puzzle. Pressing a key from 1 to 9 changes that square and the others in its row and column, with each value counting up from 0 to 5 and back to 0. The goal is to get every square back to zero, and the program counts your moves. Pressing the full stop gives up.
No author or publisher is named anywhere in the program. The menu also has hidden keys: 0 saves the collection to tape as GAME1 and verifies it, and SPACE erases the program with NEW.
This copy was found on a Larken disk labelled Poker. A cassette transfer of the program had already been made in 2023, but the TAP from that transfer was broken. The disk copy matches the cassette in 741 of its 743 lines, with only the disk save and load lines differing, and its TAP has replaced the broken one. The download still includes the 2023 cassette transfer files: a TZX, a WAV recording and a photo of the hand-labelled tape, which is marked “LAS VAGAS”.
Program Analysis
Menu
The program autostarts at line 33, where lines 33–41 define user-defined graphic e as a checkerboard pattern. That pattern makes the border of the menu screen and fills the scrolling prompt. Line 1 scrolls the prompt across the bottom line. Line 9 sends the key pressed to line VAL R$+10, a jump table at lines 10–19. Line 7 accepts only keys 0–5, so the entries for the four empty slots at lines 16–19 are never reached.
Las Vegas
Reel stops are weighted. Line 292 draws a number from 1 to 100, and line 293 turns it into a symbol index with a chain of comparisons such as (FI>7)+(FI>10). Values below 5 are jokers. The spinning reels at lines 300–306 step each reel through the 13 symbols in W$ and stop it when it reaches the drawn symbol. Each reel stops later than the one before. Payouts come from R(NS,K(2)), where NS counts the matching neighbouring reels, and a single % pays 1. Money is kept in quarters, which is why the end-of-game report divides by four.
Qui Vive
The 42 winning shapes are stored in DATA at lines 757–776 as five-letter strings of squares A–Y and decoded into S(42,5). Lines 784–792 pack 108 pairs of overlapping shapes into D(108,2) as two characters each, offset from CODE "0". The player’s checkers count 1 and the computer’s count 10, so the sum over a shape shows at once who owns it. For example, 4 means the player has four of the five squares and 40 means the computer does. The computer’s move search at lines 704–722 tries each empty square, uses those sums to block threats and to score the overlapping shapes, and picks the best one.
Boule and One to Five
Boule names its numbers with variables such as ONE, TWELVE and TWENTYONE, all set in line 1010, and draws the wheel with UDGs f–l printed over one another with OVER 1. One to Five keeps the board in A(3,3). Line 7420 subtracts 1 from the chosen square before the row and column loop adds 1 to it twice, so that square goes up by one like the rest. Line 7500 wraps 6 back to 0.
Notable Techniques
- Computed
GO TOandGO SUBwith BooleanAND, as in line 403GO SUB (250 AND CA=1)+(260 AND CA=2)+…, take the place ofON … GO TO. - Line 380 adds trailing zeros to money amounts by comparing
LEN STR$ XwithLEN STR$ INT X. - Qui Vive’s 1-and-10 weighting lets one sum describe the state of a whole shape.
- The gamble pointer at line 347 slows down by raising its delay to the power 1.3 at each step, so it eases to a stop after you press S.
Potential Issues
- Line 366 is meant to report a gambling loss but sets
Cinstead ofX, so the “LOST BY GAMBLING” figure repeats the previous line’s value. - In One to Five, line 7330 jumps to line 795 when a key is still held, which is Qui Vive’s play-again prompt. Answering Y there starts Qui Vive rather than another round of One to Five. Because the
PAUSE 500before it ends on a key press, this is the likely path. - Boule doesn’t check the bet for a negative value. A negative bet that loses increases the stake.
- Boule compares the choice with upper-case letters only, and the program never turns on caps lock, so a lower-case
atofalways loses. - Squares has no check for a solved grid. The game carries on until you enter 999.
- Line 141 and lines 1480–1490 print an empty string and the same character twice, so the jackpot flash and the Boule ball animation appear to show nothing. A character may have been lost from these lines.
The TAP in the download was converted from the Larken disk copy. The PRINT #4 disk prefixes and the disk load line were removed, the autostart was corrected to line 33 and the disk’s variables marker was dropped. It was tested in ZEsarUX on the menu, the fruit machine and Boule.
Source Code
1 FOR I=1 TO LEN A$-20: PRINT AT 21,4;A$(I TO I+20): PAUSE 15: NEXT I
2 IF INKEY$<>"" THEN GO TO 2
3 IF INKEY$="" THEN GO TO 3
4 LET R$=INKEY$
5 IF R$=" " THEN NEW
7 IF R$<"0" OR R$>"5" THEN GO TO 2
9 GO TO VAL R$+10
10 GO TO 44
11 GO TO 50: REM LAS VEGAS
12 GO TO 501: REM SQUARES
13 GO TO 555: REM QUI VIVE
14 GO TO 1000: REM BOULE
15 GO TO 7000: REM ONE TO FIVE
16 GO TO 1: REM SIXTH GAME
17 GO TO 1: REM SEVENTH GAME
18 GO TO 1: REM EIGHTH GAME
19 GO TO 1: REM NINTH GAME
20 CLS : POKE 23659,0: PRINT "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
21 FOR I=1 TO 22: PRINT "::eeeeeeeeeeeeeeeeeeeeeeeeeeeeee::": NEXT I
22 PRINT "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::": POKE 23659,2: PRINT AT 2,13; FLASH 1;"MENU"; FLASH 0
23 PRINT AT 5,2;"1 LAS VEGAS"
24 PRINT AT 6,2;"2 SQUARES"
25 PRINT AT 7,2;"3 QUI VIVE"
26 PRINT AT 8,2;"4 BOULE"
27 PRINT AT 9,2;"5 ONE TO FIVE"
28 PRINT AT 10,2;"6 NOTHING"
29 PRINT AT 11,2;"7 NOTHING"
30 PRINT AT 12,2;"8 NOTHING"
31 PRINT AT 13,2;"9 NOTHING"
32 GO TO 1
33 POKE USR "e",BIN 10101010
34 POKE USR "e"+1,BIN 01010101
35 POKE USR "e"+2,BIN 10101010
36 POKE USR "e"+3,BIN 01010101
37 POKE USR "e"+4,BIN 10101010
38 POKE USR "e"+5,BIN 01010101
39 POKE USR "e"+5,BIN 01010101
40 POKE USR "e"+6,BIN 10101010
41 POKE USR "e"+7,BIN 01010101
42 LET A$="eeeeeehit number corresponding to program desiredeeeeeeeeeeeeeeeeeeeee"
43 GO TO 20
44 CLS : SAVE "GAME1" LINE 33
45 PRINT AT 3,6;"REWIND TAPE";AT 5,5;" AND HIT ENTER";AT 7,6;"TO VERIFY";: PRINT : PRINT
46 VERIFY "GAME1"
47 GO TO 33
50 REM ***LAS VEGAS***
51 CLS : DIM R(3,13): DIM J(13): LET J(5)=1: LET J(6)=1: LET J(7)=1: LET W$="AKQJ7*$0/=+#%"
52 RESTORE 53: FOR I=5 TO 12: READ R(2,I),R(3,I): NEXT I
53 DATA 8,40,8,40,7,30,5,25,3,20,3,20,2,10,2,10
54 DIM H(3): DIM P(3): DIM C(4): DIM D(4): DIM K(3): DIM V(4): DIM O(3): DIM A(3): DIM F(3): DIM G(4): DIM E(4,2)
55 FOR I=1 TO 3: READ P(I): NEXT I
56 FOR I=1 TO 4: READ D(I): READ E(I,1): READ E(I,2): NEXT I
57 DATA 12,14,16,12,1,14,13,2,20,15,3,14,16,2,9
58 LET B$=" ": LET NT=-1: LET NJ=4: LET NI=0: LET WI=0: LET HB=0: LET DO=0: LET DC=0: LET JA=0: LET JC=0: LET MO=0: LET MM=0: LET R=0: LET GW=0: LET NH=0: LET NG=0
60 FOR I=1 TO 3: LET V(I)=INT (RND*14): NEXT I
62 GO TO 400
100 REM ***FLASH S$ AND GET INKEY$***
101 PRINT AT R,C; OVER 1; FLASH 1;S$;
102 LET I$=INKEY$: IF I$="" THEN GO TO 102
103 PRINT AT R,C; PAPER CL;T$;
104 RETURN
110 REM ***ADD INCREMENT TO MONEY***
111 FOR I=SGN (IN) TO IN STEP SGN (IN)
112 PRINT AT 0,7;MO+I;" ";: BEEP .1,40: NEXT I
113 LET MO=MO+IN: RETURN
120 REM ***REMOVE DOUBLE***
121 LET DO=0: PRINT AT 6,11; PAPER 2;" ";
122 FOR I=1 TO 4: PRINT AT 7,D(I);W$(I);: LET C(I)=0: NEXT I: RETURN
130 REM ***CLEAR LAST LINE***
131 PRINT AT 21,0;TAB 31;"";: RETURN
140 REM ***JACKPOT***
141 FOR T=1 TO 4: FOR C=1 TO JC: PRINT AT 0,11+C;"";: NEXT C
142 FOR C=1 TO JC: BEEP .1,10+2*C: PRINT AT 0,11+C;"J";: NEXT C
143 NEXT T: RETURN
150 REM ***FLASH POSSIBLE HOLDS AND GET INKEYS$***
151 FOR I=1 TO 3: IF H(I)=0 THEN PRINT AT 11,P(I); FLASH 1; PAPER 2; INK 7; OVER 1;"H";
152 NEXT I: LET HO=0
153 LET I$=INKEY$: IF I$="" THEN GO TO 153
154 IF I$<>"1" AND I$<>"2" AND I$<>"3" THEN GO TO 157
155 LET I=VAL I$: PRINT AT 11,P(I); PAPER 2; INK 7;"H";
156 LET HO=1: LET H(I)=1: GO TO 153
157 FOR I=1 TO 3: IF H(I)=0 THEN PRINT AT 11,P(I); PAPER 2;" ";
158 NEXT I: LET NH=NH+HO: RETURN
200 REM ***DRAW SCREEN***
201 PRINT AT 5,11; PAPER 3;" ";
202 FOR I=0 TO 4: PRINT AT 6+I,10; PAPER 3;" "; PAPER 2;" "; PAPER 3;" "; PAPER 7;" "; PAPER 3;" ";: NEXT I
203 PRINT AT 6,20; PAPER 2;" ";: PRINT AT 10,19; PAPER 3;" ";
204 FOR I=0 TO 2: PRINT AT 9,12+2*I; PAPER 6;" ";: NEXT I
205 PRINT AT 11,11; PAPER 5;" ";
206 FOR I=0 TO 2: PRINT AT 11,12+2*I; PAPER 2;" ";: NEXT I
207 FOR I=0 TO 3: PRINT AT 12+I,12; PAPER 5;" ";: NEXT I
208 FOR I=0 TO 3: FOR K=0 TO 4+2*I: PRINT AT 16+I,12-I+K; PAPER 1;" ";: NEXT K: NEXT I
209 PRINT AT 0,0;"TOTAL: 0";
210 PRINT AT 8,0;"--%--= 1";
211 FOR I=12 TO 5 STEP -1
212 PRINT AT 21-I,0;"-";W$(I);W$(I);"- = ";R(2,I);
213 PRINT AT 21-I,22;W$(I);W$(I);W$(I);" = ";R(3,I);
214 IF J(I) THEN PRINT "+J";
215 NEXT I: RETURN
230 REM ***ADAPT VARIABLES***
231 LET NT=NT+1: IF WI>0 THEN LET HB=1: LET WI=0
232 FOR I=1 TO 3: LET H(I)=0: PRINT AT 11,P(I); PAPER 2;" ";: NEXT I
233 IF DO THEN GO TO 238
234 FOR I=1 TO 4: IF C(I)=0 THEN GO TO 237
235 LET C(I)=C(I)-1: IF C(I)>0 THEN GO TO 237
236 LET NJ=NJ+1: PRINT AT 7,D(I);W$(I);
237 NEXT I: GO TO 239
238 LET DC=DC-1: IF DC=0 THEN GO SUB 120
239 IF JA THEN PRINT AT 0,11+JC;" ";: LET JC=JC-1: IF JC=0 THEN LET JA=0
240 IF MO>MM THEN LET MM=MO
241 RETURN
250 REM ***NOT ENOUGH MONEY***
251 LET HB=1: GO SUB 120
252 LET JA=0: PRINT AT 0,10;TAB 31;"";
253 GO SUB 130: PRINT AT 21,8; PAPER 5;"INSERT OR END";
254 LET S$="INSERT (I)": LET T$=B$: LET CL=7: LET R=2: LET C=0: GO SUB 100
255 IF I$="P" OR I$="p" THEN GO TO 254
256 RETURN
260 REM ***HOLD POSSIBLE***
261 GO SUB 130: PRINT AT 21,2; PAPER 5;"INSERT, HOLD, PLAY OR END";
262 GO SUB 150: RETURN
270 REM ***NO HOLD POSSIBLE***
271 GO SUB 130: PRINT AT 21,5; PAPER 5;"INSERT, PLAY OR END";
272 LET S$="???": LET T$=" ": LET CL=1: LET R=18: LET C=13: GO SUB 100
273 RETURN
280 REM ***WHAT TO DO WITH WINNINGS***
281 GO SUB 130
282 IF HB THEN PRINT AT 21,7;"";: GO TO 284
283 PRINT AT 21,4; PAPER 5;"HOLD, ";
284 PRINT ; PAPER 5;"GAMBLE OR COLLECT";
285 LET S$="???": LET T$=" ": LET CL=1: LET R=18: LET C=13: GO SUB 100
286 RETURN
290 REM ***PLAY***
291 FOR I=1 TO 3: IF H(I) THEN GO TO 294
292 LET O(I)=V(I): LET FI=INT (RND*100)+1: LET V(I)=FI: IF FI<5 THEN GO TO 294
293 LET V(I)=5+(FI>7)+(FI>10)+(FI>13)+(FI>36)+(FI>49)+(FI>68)+(FI>87)
294 NEXT I
295 FOR C=6 TO 9: PRINT AT C,20;" ";: PRINT AT C+1,20; PAPER 2;" ";
296 FOR I=1 TO 15: NEXT I: NEXT C
297 FOR C=10 TO 7 STEP -1: PRINT AT C,20; PAPER 3;" ";: PRINT AT C-1,20; PAPER 2;" ";
298 FOR I=1 TO 15: NEXT I: NEXT C
299 FOR I=1 TO 3: LET F(I)=0: NEXT I
300 FOR I=0 TO 70: FOR J=1 TO 3
301 IF H(J)=1 THEN GO TO 306
302 IF F(J)=1 THEN GO TO 305
303 LET O(J)=O(J)+1: IF O(J)>13 THEN LET O(J)=1
304 IF (I>10+13*J) AND O(J)=V(J) THEN LET F(J)=1: BEEP .02,8*J
305 PRINT AT 9,P(J); PAPER 6;W$(O(J));
306 NEXT J: NEXT I: RETURN
310 REM ***TAKE CARE OF JOKERS***
311 LET JO=0: FOR I=1 TO 3: LET V=V(I)
312 IF V>4 THEN LET FV=V: GO TO 315
313 LET JW=I: LET JO=JO+1: IF C(V)>0 THEN GO TO 315
314 PRINT AT 7,D(V); PAPER 3;" ";: LET C(V)=20: LET NJ=NJ-1
315 NEXT I: LET DO=(NJ=0): IF DO THEN LET DC=15: PRINT AT 6,11; PAPER 6;"DOUBLE!";
316 RETURN
320 REM ***COMPUTE WINNINGS***
321 LET HV=5: GO TO (322 AND JO=0)+(325 AND JO=1)+(322 AND JO=2)+(327 AND JO=3)
322 LET HV=FV
323 GO TO 327
325 LET V(4)=15: LET JR=JW+1: LET JL=JW-1: IF JL=0 THEN LET JL=4
326 LET HV=V(JR): IF V(JR)>V(JL) THEN LET HV=V(JL)
327 FOR I=1 TO 3: LET K(I)=V(I): IF V(I)<5 THEN LET K(I)=HV
328 NEXT I: IF K(1)<>K(2) OR K(2)<>K(3) THEN GO TO 330
329 IF J(K(1)) THEN LET JA=1: LET JC=15: GO SUB 140
330 LET W1=0: LET W2=0
331 FOR I=1 TO 3: IF K(I)=13 THEN LET W1=W1+1
332 NEXT I: LET NS=1+(K(1)=K(2))+(K(2)=K(3)): LET W2=R(NS,K(2))
333 LET WI=W2: IF W1>WI THEN LET WI=W1
334 IF JA AND WI>0 AND WI<10 THEN LET WI=10
335 IF DO THEN LET WI=2*WI
336 RETURN
340 REM ***GAMBLE ROUTINE**
341 LET DT=1: LET G(1)=2*WI: LET G(2)=0: LET G(3)=INT (3*WI/2): LET G(4)=INT (WI/2)
342 LET NG=NG+1: GO SUB 130: PRINT AT 21,12; PAPER 5;"STOP";
343 FOR I=1 TO 3: PRINT AT I,8; PAPER 6;" ";: NEXT I: REM 15*
344 LET R=R+1: IF R>4 THEN LET R=1
345 PRINT AT E(R,1),E(R,2); PAPER 6;G(R);: BEEP .003,10+3*R
346 IF I$<>"S" AND I$<>"s" THEN LET I$=INKEY$: GO TO 349
347 LET DT=(2+RND)*0.5*DT^1.3: IF DT>250 THEN LET DT=250
348 FOR I=1 TO DT: NEXT I: IF DT>200 THEN GO TO 350
349 PRINT AT E(R,1),E(R,2); PAPER 6;" ";: GO TO 344
350 FOR I=1 TO 3: PRINT AT I,8;TAB 31;"";: NEXT I
351 LET GW=GW+G(R)-WI: LET WI=G(R): RETURN
360 REM ***END OF GAME***
361 CLS : PRINT : PRINT "AMOUNT OF MONEY": PRINT
362 PRINT " PUT IN:";TAB 18;"$";: LET X=NI: GO SUB 380
363 PRINT " GOT BACK:";TAB 18;"$";: LET X=MO/4: GO SUB 380
364 PRINT " MAX AT ONE TIME: $";: LET X=MM/4: GO SUB 380
365 IF GW>=0 THEN PRINT " WON BY GAMBLING: $";: LET X=GW/4: GO SUB 380
366 IF GW<0 THEN PRINT " LOST BY GAMBLING:$";: LET C=-GW/4: GO SUB 380
367 PRINT : PRINT : PRINT "NUMBER OF HOLDS:";TAB 19;: LET X=NH: GO SUB 390
368 PRINT "NUMBER OF GAMBLES:";TAB 19;: LET X=NG: GO SUB 390
369 PRINT "NUMBER OF TURNS:";TAB 19;: LET X=NT: GO SUB 390
370 RETURN
380 LET L=LEN STR$ X-LEN STR$ INT X
381 LET X$=STR$ X+("0" AND L=2)+(".00" AND L=0)
382 FOR I=LEN X$ TO 5: PRINT " ";: NEXT I: PRINT X$: RETURN
390 FOR I=LEN STR$ X TO 2: PRINT " ";: NEXT I: PRINT X: RETURN
400 REM ***MAIN PROGRAM***
401 GO SUB 200: REM SCREEN
402 GO SUB 230: REM ADAPT
403 LET CA=2*HB+(MO>1)+1: GO SUB (250 AND CA=1)+(260 AND CA=2)+(250 AND CA=3)+(270 AND CA=4)
404 PRINT AT 3,8;TAB 31;"";: LET CA=(I$="I" OR I$="i")+2*(I$="P" OR I$="p")+3*(I$="E" OR I$="e")
405 GO TO (403 AND CA=0)+(410 AND CA=1)+(412 AND CA=2)+(470 AND CA=3)
410 LET NI=NI+1: LET IN=4: GO SUB 110: IF MO>MM THEN LET MM=MO
411 GO TO 403
412 LET IN=-2: GO SUB 110
421 GO SUB 290: REM PLAY
422 GO SUB 310: REM JOKERS
423 GO SUB 320: REM WINNINGS
424 IF H(1)+H(2)+H(3)>0 THEN GO TO 426
425 LET HB=0: LET LW=WI: GO TO (429 AND WI>0)+(402 AND WI<=0)
426 LET HB=1: IF WI>LW THEN GO TO 429
427 IF LW=0 THEN GO TO 402
428 PRINT AT 3,10;TAB 31;"";: PRINT AT 3,11; PAPER 6;"YOU LOST";: BEEP 2,10: GO TO 402
429 PRINT AT 3,10; PAPER 6;"YOU WON ";WI;: FOR I=1 TO WI: BEEP .1,20: NEXT I
430 IF MO<2 THEN LET HB=1
431 GO SUB 280: REM GET INSTRUCTION
432 LET CA=((I$="H" OR I$="h") AND NOT HB)+2*(I$="G" OR I$="g")+3*(I$="C" OR I$="c")
433 GO TO (431 AND CA=0)+(460 AND CA=1)+(450 AND CA=2)+(440 AND CA=3)
440 LET IN=WI: GO SUB 110: GO TO 402
450 LET HB=1: GO SUB 340: REM GAMBLE
451 IF WI>0 THEN GO TO 429
452 GO TO 428
460 LET WI=0: GO TO 402
470 GO SUB 360
480 IF INKEY$<>"" THEN GO TO 480
490 IF INKEY$="" THEN GO TO 490
500 GO TO 33: REM EXIT PROGRAM
501 REM RAINBOW SQUARE DANCE
502 DIM A(6,6)
503 FOR X=1 TO 5
504 FOR Y=2 TO 6
505 LET A(X,Y)=Y-1
506 NEXT Y
507 NEXT X
508 FOR I=1 TO 20
509 LET K=1+INT (10*RND)
510 GO SUB 540
511 NEXT I
512 CLS
513 REM ***BEGIN GAME***
514 FOR Y=2 TO 6
515 LET P=(Y-2)*4-1
516 PRINT AT (P+2),5;Y-1
517 FOR I=1 TO 4
518 PRINT AT (P+I),7; INK A(1,Y);"::::::::"; INK A(2,Y);"::::::::"; INK A(3,Y);"::::::::"; INK A(4,Y);;"::::::::"; INK A(5,Y);"::::::::"
519 NEXT I
520 NEXT Y
521 PRINT AT 21,7;" 6 7 8 9 0"
522 INPUT AT 0,0;"COLUMNNUMBER(0..9): ";K;AT 1,0;"NUMBER OF STEPS (-4..4): ";S
524 IF K=999 OR S=999 THEN GO TO 33
526 IF K=0 THEN LET K=10
528 IF (K<1 OR K>10) OR (S<-4 OR S>4) THEN GO TO 522
530 IF S<0 THEN LET S=S+5
532 FOR I=1 TO S
534 GO SUB 540
536 NEXT I
538 GO TO 513
540 IF K>5 THEN GO TO 547
542 FOR X=6 TO 2 STEP -1
543 LET A(X,K+1)=A(X-1,K+1)
544 NEXT X
545 LET A(1,K+1)=A(6,K+1)
546 RETURN
547 FOR Y=2 TO 6
548 LET A(K-5,Y-1)=A(K-5,Y)
549 NEXT Y
550 LET A(K-5,6)=A(K-5,1)
551 RETURN
554 REM **QUI VIVE**
555 DIM S(42,5): DIM O(42)
556 DIM D(108,2): DIM F(16,9)
557 DIM E(5,2): DIM B(25): DIM C(25)
558 GO TO 695
560 REM **COMPUTE POINTS OF F(.,.)**
561 LET P1=0: LET P2=0: LET C1=0: LET C2=0: LET D1=B(F(N,1)): LET D2=B(F(N,2))
562 IF D1=1 OR D2=1 THEN LET P1=1
563 IF D1=10 OR D2=10 THEN LET C1=10
564 LET D1=B(F(N,3)): LET D2=B(F(N,4))
565 IF D1=1 OR D2=1 THEN LET P2=1
566 IF D1=10 OR D2=10 THEN LET C2=10
567 LET GV=B(F(N,5))+B(F(N,6))+B(F(N,7))
568 LET P=GV+P1+P2+C1+C2
569 IF GV=30 AND (C1=0 OR C2=0) THEN LET P=P-10
570 IF GV=3 AND (P1=0 OR P2=0) THEN LET P=P-1
571 RETURN
575 REM **COMPUTE DOUBLE FIGURES FIELDS**
576 LET TC=5: LET TN=1
577 FOR I=1 TO 5: LET C(S(D(F,1),I))=1: NEXT I
578 FOR I=1 TO 5: LET S=S(D(F,2),I)
579 IF C(S)=1 THEN GO TO 581
580 LET F(N,TN)=S: LET TN=TN+1: GO TO 582
581 LET F(N,TC)=S: LET TC=TC+1: LET C(S)=0
582 NEXT I
583 FOR I=1 TO 5: LET S=S(D(F,1),I)
584 IF C(S)=1 THEN LET F(N,TN)=S: LET TN=TN+1: LET C(S)=0
585 NEXT I: RETURN
587 REM **DETERMINE OWNERS OF S(.,.)'S**
588 LET OM=-1: LET WM=-1
589 FOR S=1 TO 42
590 LET P=B(S(S,1))+B(S(S,2))+B(S(S,3))+B(S(S,4))+B(S(S,5))
591 IF P=0 OR P=10 OR P=20 OR P=30 THEN LET O(S)=10: GO TO 601
592 IF P<>40 THEN GO TO 596
593 GO SUB 603
594 GO SUB 608
595 LET WM=1: LET S=42: GO TO 601
596 IF P>20 OR P<3 OR P=11 OR P=12 THEN LET O(S)=0: GO TO 601
597 LET O(S)=1
598 IF P=4 AND OM=-1 THEN GO SUB 603
599 IF P=14 THEN GO SUB 608
600 IF P=5 THEN LET S=42
601 NEXT S: RETURN
603 REM **DETERMINE OBLIGATORY MOVE (OM)**
604 FOR I=1 TO 5
605 IF B(S(S,I))=0 THEN LET OM=S(S,I)
606 NEXT I: RETURN
608 REM **DETERMINE PENDED CHECKER**
609 FOR I=1 TO 5
610 IF B(S(S,I))<>10 THEN GO TO 614
611 FOR J=1 TO CC
612 IF S(S,I)=E(J,1) THEN LET E(J,2)=1
613 NEXT J
614 NEXT I
615 RETURN
617 REM **DETERMINE INTERESTING F(.,.)'S**
618 LET NC=0: LET NP=0: LET N=1
619 FOR I=1 TO 16
620 LET F(I,9)=-1
621 LET F(I,8)=0
622 NEXT I
623 FOR F=1 TO 108
624 LET O1=O(D(F,1)): LET O2=O(D(F,2))
625 IF O1<>O2 OR O1=0 OR O2=0 THEN GO TO 637
626 GO SUB 575
627 GO SUB 560
628 IF P=4 OR P=14 THEN LET F(N,8)=1: GO TO 631
629 IF O1=1 OR P<=F(N,9) THEN GO TO 637
630 LET F(N,8)=10
631 LET F(N,9)=P
632 LET N=1
633 FOR I=1 TO 16
634 IF F(I,9)>=F(N,9) THEN GO TO 636
635 IF F(I,8)=0 OR F(I,8)=10 THEN LET N=I
636 NEXT I
637 NEXT F
638 RETURN
640 REM **TREAT MOVE**
641 IF WM=1 THEN GO TO 657
642 LET MC=0: LET N2=0
643 FOR N=1 TO 16
644 IF F(N,8)=0 THEN GO TO 651
645 GO SUB 560
646 IF F(N,8)=1 THEN GO TO 650
647 IF P=MC THEN LET N2=N2+1
648 IF P>MC THEN LET MC=P: LET N2=1
650 IF P=4 THEN LET N=16
651 NEXT N
652 IF R=0 THEN GO TO 657
653 IF P=4 THEN RETURN
654 IF MC<MP THEN RETURN
655 IF MC=MP AND N2<N1 THEN RETURN
656 IF MC=MP AND N2=N1 AND RND<.5 THEN RETURN
657 LET MP=MC: LET N1=N2
658 LET R=D: LET T=B
659 RETURN
661 REM **PLAYER MOVE**
662 PRINT AT 17,6;"NOW IT'S YOUR TURN!": PRINT AT 19,0;TAB 31;"": PRINT AT 20,0;TAB 31;"";
663 IF PC<5 THEN GO TO 667
664 INPUT "WHICH CHECKER DO YOU TAKE?";TAB 32;"A1..E5: ";M$
665 GO SUB 675: LET T=X: IF NP OR B(T)<>1 THEN BEEP 1,20: GO TO 664
666 PRINT AT 19,3;"YOU TAKE CHECKER FROM: ";M$
667 INPUT "WHERE DO YOU PLACE YOUR CHECKER?A1..E5: ";M$
668 GO SUB 675: LET R=X: IF NP OR B(R)<>0 THEN BEEP 1,20: GO TO 667
669 PRINT AT 20,3;"YOU PLACE CHECKER ON : ";M$
670 IF PC=5 THEN LET B(T)=0
671 IF PC<5 THEN LET PC=PC+1
672 LET B(R)=1: GO SUB 731
673 RETURN
675 REM ** INPUT **
676 LET NP=0: LET X=1: IF LEN M$<>2 THEN GO TO 681
677 LET CO=CODE M$(1): IF CO>96 THEN LET M$(1)=CHR$ (CO-32)
678 LET L$=M$(1): LET D$=M$(2)
679 IF L$<"A" OR L$>"E" OR D$<"1" OR D$>"5" THEN GO TO 681
680 LET X=CODE L$-5*VAL D$-39: RETURN
681 LET NP=1: RETURN
683 REM **COMPUTER MOVE**
684 BEEP 1,30: IF CC<5 THEN LET T=CC+1: LET CC=CC+1: GO TO 690
685 PRINT AT 19,4;"I TAKE CHECKER FROM: ";CHR$ (64+T-INT ((T-1)/5)*5);5-INT ((T-1)/5)
686 LET B(T)=0
687 FOR C=1 TO 5
688 IF E(C,1)=T THEN LET T=C: LET C=5
689 NEXT C
690 PRINT AT 20,4;"I PLACE CHECKER ON : ";CHR$ (64+R-INT ((R-1)/5)*5);5-INT ((R-1)/5)
691 LET B(R)=10: LET E(T,1)=R
692 GO SUB 731
693 RETURN
695 REM **MAIN PROGRAM**
696 LET D=1: LET B=1: LET WM=-1
697 GO SUB 741: PRINT AT 17,11;"PLEASE WAIT"
698 GO SUB 751: GO SUB 778
699 LET CC=0: LET PC=0: PRINT AT 17,0;TAB 31;""
700 INPUT "DO YOU WANT TO BEGIN?";TAB 32;"Y OR N: ";A$
701 IF A$="N" OR A$="n" THEN LET R=13: GO TO 723
702 IF A$="Y" OR A$="y" THEN GO TO 725
703 GO TO 700
704 FOR I=1 TO 5: LET E(I,2)=0: NEXT I
705 GO SUB 587: IF P=5 THEN GO TO 727
706 PRINT AT 17,6;" NOW IT'S MY TURN! ": PRINT AT 19,0;TAB 31;"": PRINT AT 20,0;TAB 10;"PLEASE WAIT";TAB 31;""
707 IF WM<>1 THEN GO SUB 617
708 LET MP=0: LET N1=0: LET R=0
709 LET BF=1: LET EF=25
710 IF OM<>-1 THEN LET BF=OM: LET EF=OM
711 FOR D=BF TO EF
712 IF B(D)<>0 THEN GO TO 722
713 LET B(D)=10
714 IF CC<5 THEN GO SUB 640: GO TO 721
715 FOR C=1 TO 5
716 IF E(C,2) THEN GO TO 720
717 LET B=E(C,1): LET B(B)=0
718 GO SUB 640
719 LET B(B)=10
720 NEXT C
721 LET B(D)=0
722 NEXT D
723 GO SUB 683
724 IF WM=1 THEN GO TO 728
725 GO SUB 661
726 GO TO 704
727 PRINT AT 21,12; PAPER 6;"YOU WIN!": GO TO 729
728 PRINT AT 21,13; PAPER 5;"I WIN!"
729 BEEP 2,25: GO TO 794
731 REM **DISPLAY CHECKERS**
732 FOR I=0 TO 4: FOR J=1 TO 5
733 LET H=5*I+J
734 IF B(H)=0 THEN PRINT AT 4+2*I,9+2*J;" ";
735 IF B(H)=1 THEN PRINT AT 4+2*I,9+2*J; PAPER 6;"P";
736 IF B(H)=10 THEN PRINT AT 4+2*I,9+2*J; PAPER 5;"C";
737 NEXT J: NEXT I: RETURN
738 PRINT AT 14,11;"A B C D E";
739 RETURN
741 REM **DISPLAY BOARD**
742 CLS : PRINT AT 1,9;"***QUI VIVE***"
743 FOR I=0 TO 5
744 PLOT 84,147-16*I: DRAW 80,0
745 PLOT 84+16*I,147: DRAW 0,-80
746 NEXT I
747 FOR I=1 TO 5: PRINT AT 14-2*I,21;I: NEXT I
748 PRINT AT 14,11;"A B C D E";: GO SUB 5000
749 RETURN
750 REM **INIT SINGLE FEATURES**
751 RESTORE 757
752 FOR I=1 TO 42: READ M$
753 FOR J=1 TO 5
754 LET S(I,J)=CODE M$(J)-64
755 NEXT J: NEXT I: RETURN
756 REM WINGS (AV><)
757 DATA "UQMSY","PLMNT","KGCIO"
758 DATA "AGMIE","FLRNJ","KQWSO"
759 DATA "AGMQU","BHNRV","CIOSW"
760 DATA "EIMSY","DHLRX","CGKQW"
761 REM TIMES (X)
762 DATA "ACGKM","BDHLN","CEIMO"
763 DATA "FLHPR","GIMQS","HJNRT"
764 DATA "KMQUW","LNRVX","MOSWY"
765 REM PLUS(+)
766 DATA "BFGHL","CGHIM","DHIJN"
767 DATA "GKLMQ","HLMNR","IMNOS"
768 DATA "LPQRV","MQRSW","NRSTX"
769 REM DIAGONALS (/)
770 DATA "AGMSY","EIMQU"
771 REM COLUMNS(!)
772 DATA "AFKPU","BGQLV","CHMRW"
773 DATA "DINSX","EJOTY"
774 REM ROWS (-)
775 DATA "ABCDE","FGHIJ","KLMNO"
776 DATA "PQRST","UVWXY"
778 REM **INIT DOUBLE FIGURES**
779 FOR I=0 TO 107 STEP 12: READ X$
780 FOR J=1 TO 12
781 LET D(I+J,1)=CODE X$(2*J-1)-48: LET D(I+J,2)=CODE X$(2*J)-48
782 NEXT J: NEXT I
783 RETURN
784 DATA "171:1A1C1E1M1O1P2>2@2B2J"
785 DATA "393<3=3?3G474:4=4?4A4G4O"
786 DATA "4P5@5B5D5J696<6C6E6M7=7A"
787 DATA "7C7I7O7P8>8B8D8J9?9E9K:?"
788 DATA ":A:E:K:O:P;>;@;D;J<=<C<I"
789 DATA "=G=I=O>F>H>J?G?K?P@F@J@L"
790 DATA "AGAIAKAMAOAPBHBJBNCICMCP"
791 DATA "DJDLDNEKEMEOFRFWGSGWHTHW"
792 DATA "IRIXJSJXKTKXLRLYMSMYNTNY"
794 CLS : PRINT AT 5,3;"WANNA PLAY AGAIN?"
795 IF INKEY$<>"" THEN GO TO 795
796 IF INKEY$="" THEN GO TO 796
797 IF INKEY$="Y" OR INKEY$="y" THEN GO TO 555
798 GO TO 33
1000 CLS
1010 LET ZERO=0: LET ONE=1: LET TWO=2: LET THREE=3: LET FOUR=4: LET FIVE=5: LET SIX=6: LET SEVEN=7: LET EIGHT=8: LET NINE=9: LET TEN=10: LET ELEVEN=11: LET TWELVE=12: LET THIRTN=13: LET FOURTN=14: LET FIFTN=15: LET SIXTN=16: LET SEVENTN=17: LET EIGHTN=18: LET NINETN=19: LET TWENTY=20: LET TWENTYONE=21
1060 FOR I=ZERO TO TWENTYONE
1070 PRINT "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
1080 NEXT I
1090 PRINT AT ONE,ONE;"1 2 MANQUE 3 4";AT ONE,TWENTY;"""BOULE"""
1100 PRINT AT TWO,ONE;"................................"
1110 PRINT AT THREE,ONE;"1::::::::PAIRS::::::::2"
1120 PRINT AT FOUR,SEVEN;"2,4"
1130 PRINT AT FIVE,ONE;"3";AT FIVE,SEVEN;"6,8";AT FIVE,FIFTN;"4"
1140 PRINT AT SIX,EIGHT;"5"
1150 PRINT AT SEVEN,ONE;"6 IMPAIRS 7"
1160 PRINT AT EIGHT,SEVEN;"1,3"
1170 PRINT AT NINE,ONE;"8";AT NINE,SEVEN;"7,9";AT NINE,FIFTN;"9"
1180 PRINT AT TEN,ONE;".............................."
1190 PRINT AT ELEVEN,ONE;"6 7 PASSE 8 9"
1200 PRINT AT TWO,SEVENTN;"YOU CAN BET ON"
1210 PRINT AT THREE,EIGHTN;"A) ""PAIRS"""
1220 PRINT AT FOUR,EIGHTN;"B) ""IMPAIRS"""
1230 PRINT AT FIVE,EIGHTN;"C) ""MANQUE"""
1240 PRINT AT SIX,EIGHTN;"D) ""PASSE"""
1250 PRINT AT SEVEN,EIGHTN;"E) BLACK NOS."
1260 PRINT AT EIGHT,EIGHTN;"F) WHITE NOS."
1270 PRINT AT NINE,EIGHTN;"*) ANY ONE NO.";AT NINE,TWENTYONE;"(7 TO 1)"
1280 PRINT AT THIRTN,ONE;"ALL PAYOFFS ARE EVEN MONEY-- EXCEPT ""*"" WHICH PAYS 7 TO 1."
1290 PRINT AT FIFTN,ONE;"NO. 5 IS THE HOUSE NO. YOU LOSE IF 5 COMES UP."
1300 PRINT AT TWENTY,ONE;"PRESS ENTER TO CONTINUE."
1310 INPUT LINE Z$
1320 GO SUB 4000
1330 LET M=100
1350 PRINT AT THIRTN,ONE;"YOUR STAKE IS $";M;" ";AT SIXTN,ONE;"ENTER YOUR BET:"
1360 INPUT H
1361 IF H=ZERO THEN GO TO 33
1362 IF H>M THEN GO TO 1360
1365 PRINT AT SIXTN,ONE;" "
1366 PRINT AT SIXTN,TWELVE;"BET: ";H;" "
1370 PRINT AT THIRTN,ONE;" "
1380 PRINT AT THIRTN,ONE;"ENTER YOUR CHOICE";AT FOURTN,ONE;"(A-F) OR A NUMBER"
1390 INPUT LINE U$
1400 PRINT AT THIRTN,ONE;" ";AT FOURTN,ONE;" "
1405 PRINT AT FIFTN,TEN;"STAKE: ";M;" "
1410 PRINT AT SEVENTN,NINE;"PICKED: ";U$;" "
1420 PRINT AT TWENTY,ONE;"PRESS ""ENTER"" TO ROLL THE BALL"
1430 IF INKEY$="" THEN GO TO 1430
1440 PRINT AT TWENTY,ZERO;" "
1450 RANDOMIZE
1460 LET K=INT (RND*NINE)+ONE
1470 FOR N=ONE TO 50
1480 PRINT AT SEVENTN,24;".'"
1490 PRINT AT SEVENTN,24;".'"
1500 NEXT N
1510 PRINT AT NINETN,ONE;"THE NUMBER IS: ";K;" "
1520 IF K<>FIVE THEN GO TO 1580
1540 IF K=FIVE THEN PRINT AT THIRTN,ONE;"SORRY ABOUT THAT HOUSE NUMBER"
1550 LET M=M-H
1560 IF M<=ZERO THEN GO TO 1800
1570 GO TO 2300
1580 IF U$>"0" AND U$<"A" THEN GO TO 1900
1600 IF (K=ONE OR K=THREE) AND (U$="B" OR U$="C" OR U$="E") THEN GO TO 1750
1610 IF (K=TWO OR K=FOUR) AND (U$="A" OR U$="C" OR U$="F") THEN GO TO 1750
1620 IF (K=SIX OR K=EIGHT) AND (U$="A" OR U$="D" OR U$="E") THEN GO TO 1750
1630 IF (K=SEVEN OR K=NINE) AND (U$="B" OR U$="D" OR U$="F") THEN GO TO 1750
1675 PRINT AT TWENTY,ONE;" SORRY YOU LOSE $";H;" "
1680 LET M=M-H
1690 IF M<=ZERO THEN GO TO 1800
1700 GO TO 2300
1750 PRINT AT TWENTY,ONE;"YOU PICKED A WINNER."
1760 LET M=M+H
1770 GO TO 2300
1800 PRINT AT THIRTN,ONE;"SORRY, MY FRIEND, BUT IT SEEMS YOU ARE OUT OF CASH. +++++++++ "
1810 GO SUB 4050
1830 GO TO 33
1900 LET P=VAL U$
1910 IF K<>P THEN GO TO 2000
1920 IF K=P THEN PRINT AT TWENTY,ONE;"A BONANZA FOR YOU: $";H*SEVEN;" "
1930 LET M=M+(H*SEVEN)
1940 GO TO 2300
2000 PRINT AT TWENTY,ONE;"GOOD TRY..IT COST YOU $";H;" "
2010 LET M=M-H
2020 IF M<=ZERO THEN GO TO 1800
2300 GO SUB 4050
2310 GO SUB 4000
2320 GO TO 1350
4000 PRINT AT THIRTN,ZERO;
4010 FOR I=ONE TO EIGHT
4020 PRINT " "
4030 NEXT I
4040 RETURN
4050 FOR I=ONE TO 75
4060 NEXT I
4070 RETURN
5000 POKE USR "f"+0,BIN 00000000
5010 POKE USR "f"+1,BIN 00000000
5020 POKE USR "f"+2,BIN 00000000
5030 POKE USR "f"+3,BIN 00000000
5040 POKE USR "f"+4,BIN 00000000
5050 POKE USR "f"+5,BIN 00000100
5060 POKE USR "f"+6,BIN 00000010
5070 POKE USR "f"+7,BIN 00000001
5100 POKE USR "g"+0,BIN 00000000
5110 POKE USR "g"+1,BIN 00000000
5120 POKE USR "g"+2,BIN 00000000
5130 POKE USR "g"+3,BIN 00000000
5140 POKE USR "g"+4,BIN 00000000
5150 POKE USR "g"+5,BIN 00100000
5160 POKE USR "g"+6,BIN 01000000
5170 POKE USR "g"+7,BIN 10000000
5200 POKE USR "h"+0,BIN 00000001
5210 POKE USR "h"+1,BIN 00000010
5220 POKE USR "h"+2,BIN 00000100
5230 POKE USR "h"+3,BIN 00000000
5240 POKE USR "h"+4,BIN 00000000
5250 POKE USR "h"+5,BIN 00000000
5260 POKE USR "h"+6,BIN 00000000
5270 POKE USR "h"+7,BIN 00000000
5300 POKE USR "i"+0,BIN 10000000
5310 POKE USR "i"+1,BIN 01000000
5320 POKE USR "i"+2,BIN 00100000
5330 POKE USR "i"+3,BIN 00000000
5340 POKE USR "i"+4,BIN 00000000
5350 POKE USR "i"+5,BIN 00000000
5360 POKE USR "i"+6,BIN 00000000
5370 POKE USR "i"+7,BIN 00000000
5400 POKE USR "j"+0,BIN 00010000
5410 POKE USR "j"+1,BIN 00010000
5420 POKE USR "j"+2,BIN 00010000
5430 POKE USR "j"+3,BIN 00000000
5440 POKE USR "j"+4,BIN 00000000
5450 POKE USR "j"+5,BIN 00010000
5460 POKE USR "j"+6,BIN 00010000
5470 POKE USR "j"+7,BIN 00010000
5500 POKE USR "k"+0,BIN 00000000
5510 POKE USR "k"+1,BIN 00000000
5520 POKE USR "k"+2,BIN 00000000
5530 POKE USR "k"+3,BIN 11100111
5540 POKE USR "k"+4,BIN 00000000
5550 POKE USR "k"+5,BIN 00000000
5560 POKE USR "k"+6,BIN 00000000
5570 POKE USR "k"+7,BIN 00000000
5600 POKE USR "l"+0,BIN 00000000
5610 POKE USR "l"+1,BIN 00000000
5620 POKE USR "l"+2,BIN 00000000
5630 POKE USR "l"+3,BIN 00011000
5640 POKE USR "l"+4,BIN 00011000
5650 POKE USR "l"+5,BIN 00000000
5660 POKE USR "l"+6,BIN 00000000
5670 POKE USR "l"+7,BIN 00000000
6000 OVER 1
6010 PRINT AT 2,4;"h";AT 2,4;"g";AT 2,4;"l"
6020 PRINT AT 3,3;"h";AT 3,3;"g";AT 3,3;"l"
6030 PRINT AT 4,2;"h";AT 4,2;"g";AT 4,2;"l"
6040 PRINT AT 5,1;"h";AT 5,1;"g";AT 5,1;"l"
6050 PRINT AT 6,0;"h";AT 6,0;"g";AT 6,0;"l"
6110 PRINT AT 3,5;"f";AT 3,5;"g";AT 3,5;"l"
6120 PRINT AT 4,4;"h";AT 4,4;"g";AT 4,4;"l"
6130 PRINT AT 5,3;"h";AT 5,3;"g";AT 5,3;"l"
6140 PRINT AT 4,6;"i";AT 4,6;"f";AT 4,6;"l"
6150 PRINT AT 5,7;"i";AT 5,7;"f";AT 5,7;"l"
6210 PRINT AT 6,5;"j";AT 6,5;"l"
6220 PRINT AT 7,5;"j";AT 7,5;"k";AT 7,5;"l"
6230 PRINT AT 8,5;"j";AT 8,5;"l"
6240 PRINT AT 7,4;"k";AT 7,4;"l"
6250 PRINT AT 7,6;"k";AT 7,6;"l"
6310 PRINT AT 8,0;"j";AT 8,0;"l"
6320 PRINT AT 9,0;"j";AT 9,0;"l"
6330 PRINT AT 10,0;"j";AT 10,0;"l"
6340 PRINT AT 11,0;"j";AT 11,0;"l"
6350 PRINT AT 12,0;"j";AT 12,0;"l"
6410 PRINT AT 10,2;"i";AT 10,2;"f";AT 10,2;"l"
6420 PRINT AT 11,3;"i";AT 11,3;"f";AT 11,3;"h";AT 11,3;"g";AT 11,3;"l"
6430 PRINT AT 12,4;"i";AT 12,4;"f";AT 12,4;"l"
6440 PRINT AT 10,4;"h";AT 10,4;"g";AT 10,4;"l"
6450 PRINT AT 12,2;"h";AT 12,2;"g";AT 12,2;"l"
6510 PRINT AT 9,6;"i";AT 9,6;"f";AT 9,6;"l"
6520 PRINT AT 10,7;"i";AT 10,7;"f";AT 10,7;"l"
6530 PRINT AT 11,8;"i";AT 11,8;"g";AT 11,8;"l"
6540 PRINT AT 12,7;"h";AT 12,7;"g";AT 12,7;"l"
6550 PRINT AT 13,6;"h";AT 13,6;"g";AT 13,6;"l"
6610 PRINT AT 14,0;"k";AT 14,0;"l"
6620 PRINT AT 14,1;"k";AT 14,1;"l"
6630 PRINT AT 14,2;"k";AT 14,2;"l"
6640 PRINT AT 14,3;"k";AT 14,3;"l"
6650 PRINT AT 14,4;"k";AT 14,4;"l"
6660 OVER 0
6700 RETURN
7000 REM ONE TO FIVE
7010 POKE USR "m"+0,BIN 00010000
7020 POKE USR "m"+1,BIN 00010000
7030 POKE USR "m"+2,BIN 00010000
7040 POKE USR "m"+3,BIN 00010000
7050 POKE USR "m"+4,BIN 00010000
7060 POKE USR "m"+5,BIN 00010000
7070 POKE USR "m"+6,BIN 00010000
7080 POKE USR "m"+7,BIN 00010000
7090 CLS
7100 DIM A(3,3)
7105 LET C$="123456789"
7108 PRINT AT 8,6;"SELECT";TAB 16;"BOARD"
7110 PRINT AT 10,6;"-----";TAB 16;"-----"
7120 FOR I=1 TO 3
7125 LET I2=I*2: LET I3=(I-1)*3
7130 PRINT AT i2+9,5;"m";i3+1;" ";i3+2;" ";i3+3;"m";TAB 15;"m m"
7135 PRINT AT i2+10,5;"m m";TAB 15;"m m"
7140 NEXT I
7150 PRINT AT 16,5;" ----- ";TAB 15;" ----- "
7160 FOR A=1 TO 10
7170 LET I=INT (RND*9)+1: GO SUB 7400
7180 NEXT A
7190 LET M=0: LET T=0
7200 LET T$=INKEY$
7210 IF T$="" THEN GO TO 7200
7212 IF T$="." THEN GO TO 7310
7220 FOR I=1 TO 9
7230 IF T$=C$(I) THEN GO TO 7260
7240 NEXT I
7250 GO TO 7200
7260 LET M=M+1
7270 GO SUB 7400
7280 IF T<9 THEN GO TO 7200
7290 PRINT FLASH 1;"YOU DID IT"
7300 PRINT : PRINT "IN";M;" MOVES": FLASH 0
7310 PAUSE 500
7320 CLS : PRINT AT 5,3;"WANNA PLAY AGAIN?"
7330 IF INKEY$<>"" THEN GO TO 795
7340 IF INKEY$="" THEN GO TO 7330
7350 IF INKEY$="Y" OR INKEY$="y" THEN GO TO 7000
7360 GO TO 33
7400 LET X=INT ((I-1)/3)+1
7410 LET Y=I-3*(X-1)
7420 LET A(X,Y)=A(X,Y)-1
7430 FOR I=1 TO 3
7440 LET A(X,I)=A(X,I)+1
7450 LET A(I,Y)=A(I,Y)+1
7460 NEXT I
7470 LET T=0
7480 FOR I=1 TO 3
7490 FOR J=1 TO 3
7500 IF A(I,J)=6 THEN LET A(I,J)=0
7510 IF A(I,J)=0 THEN LET T=T+1
7520 PRINT AT 11+(I-1)*2,16+(J-1)*2;A(I,J)
7530 NEXT J
7540 NEXT I
7550 RETURN
9996 PRINT #4: SAVE "LOSVEG.B1" LINE 33
9999 PRINT #4: LOAD "L.B1"Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.


