THE PAST MASTER CLUB


PHONE CODE.HTM




10 '' CODE.BAS COPYRIGHTED NICK VAN VLIET VERS2.1 1993 TRANSLATED OCT/99
20 Q = 1: F = Q - Q: R = Q + Q: P = R + Q: S = P + Q: D = S + Q: T = D + Q:
U = T + Q: V = T + Q: W = V + Q: X = S: Y = F: E = R * D
30 COLOR 15, Q, P: CLS : COLOR 11, S, P
40 PRINT "CODEBREAKER "; : COLOR F, S: PRINT " NICK VAN VLIET ";
50 COLOR 15, D: PRINT " "; : PRINT DATE$; " "; : PRINT TIME$; : PRINT " "; :
COLOR 15, F
60 PRINT " NUMBER CODE ": COLOR 15, Q: LOCATE R, Q: RANDOMIZE TIMER
70 INPUT "NUMBER OF DIGITS IN YOUR CODE (3 - <7> - 9)? ", N:
IF N < 3 OR N > 9 THEN N = 7
80 U# = E ^ N + INT(RND * (E ^ (N + Q))): U$ = STR$(U#): A$ = RIGHT$(U$, N)
90 Z$ = " ": CNT = F: '' A$="726190248":N=9
100 LOCATE P, Q: PRINT "GUESS"; : COLOR 11: PRINT TAB(N + P); "R W ";
110 COLOR 14: Y = F: PRINT N; " DIGITS"

111 '' MAIN
112 GOSUB 7000: '' COMPUTER INIT

120 GOSUB 8000
130 IF A <> N THEN GOTO 120
301 '' LOOP UP
310 COLOR 30: PRINT TAB(50); "CODE'S BEEN SOLVED": COLOR 15
320 LOCATE 23, Q: INPUT "WOULD YOU LIKE ANOTHER TURN (/N)? ", Y$
330 IF NOT (Y$ = "N" OR Y$ = "n") THEN GOTO 10
340 CHAIN "GAME.BAS"
400 END



6000 '' AN EXAMPLE OF A 9 DIGIT CODE
6005 '' GUESS R W TOTAL
6010 '' 000001111 0 2 <2
6020 '' 222223333 1 1 <4
6030 '' 444445555 0 0 <4
6040 '' 666667777 1 1 <6
6050 '' 888889999 1 2 <<9
6060 '' -------------------
6070 '' 22222 1 0 <
6080 '' 66666 1 1 <
6090 '' 88888 1 2 <<<== 3RD ONE IS UP TO YOU!
6100 '' ------------------- -ALSO CROSSING 1R WITH 1W
6110 '' 236816880 4 5 <<9 <<== 1ST GUESS
6120 '' 23681 3 2 < <<== OTHER 1R 3W ASSUME #8 IS 1R
6130 '' 23618 2 3 <
6140 '' 23186 2 3 <
6150 '' 23861 5 0 <<5
6160 '' 238618806 5 4 <<9 <<==NO #8 IS RIGHT #6 WAS WRONG
6170 '' 238610688 9 0 <6180 '' NOTE: IF LINE 6130 HAD GIVEN 1 4 THEN REVERSE THE PROCEDURE AND
'' TREAT THE LAST TWO AS CORRECT AND CONTINUE ON RIGHT TO LEFT
'' TO SAVE PERMUTATIONS! - ALSO WHEN A DRASTIC CHANGE OCCURS
'' ALONG THE WAY.
'' LINE 90 AND SOLVE FROM RIGHT TO LEFT
6190 ''


6200 '' EXAMPLE 2 - 9 DIGITS
6210 '' GUESS R W TOTAL
6220 '' 000001111 0 3 <3
6230 '' 222223333 1 1 <5
6240 '' 444445555 0 1 <6
6250 '' 666667777 0 2 <8
6260 '' 888889999 1 0 <<9
6270 '' -------------------
6280 '' 22222 0 1 <
6290 '' 000004444 0 1 <
6300 '' 666669999 0 1 <<== UP TO YOU TO INPUT W/R
6310 '' -----------------
6320 '' 115782306 3 6 <<9
6330 '' 11578 1 4 < OTHER IS 3 6 - 1 4 == 2R 2W -KEEP '1' ROTATE REST
6340 '' 15781 3 2 < KEEP THREE '157' AND ROTATE REST
6350 '' 15718 1 4 < OOPS '81' WAS RIGHT
6360 '' 17581 2 3 < ALL 1ST THREE DIGITS WRONG
6370 '' 75181 2 3 < " " "
6380 '' 51781 5 0 <<5 -OK
6390 '' 517812360 6 3 <9 <<=KEEP TWO (23) AND ROTATE REST -KEEP #2 ROTATE
6400 '' 517812603 6 3 <9 KEEP #2 ROTATE REST
6410 '' 517812036 5 4 <9 OOPS LAST FOUR ALL WRONG - KEEP NONE ROTATE
6420 '' 517810362 7 2 <9 KEEP '23' ROTATE '62'
6430 '' 517810326 6 3 <9 #2 OR #6 WAS RIGHT
6440 '' 517810263 5 4 <9 OOPS WRONG AGAIN
6450 '' 517812630 5 4 <9 " " "
6460 '' 517816302 9 0 <


7000 '' LIST 7000-7200 COMPUTER
7005 STR1$ = "": STR2$ = "": STR3$ = "": STR4$ = "": STR5$ = "": STR6$ = ""
7010 FOR M = 0 TO 9 STEP 2
7015 COLOR 15: Y$ = ""
7020 FOR J = 0 TO FIX((N + Q) / 2) - Q
7022 Y$ = Y$ + CHR$(48 + M)
7030 NEXT J
7040 TST$ = Y$: TST = 0
7050 FOR J = FIX((N + Q) / 2) TO N
7060 Y$ = Y$ + CHR$(48 + M + Q)
7070 NEXT J
7199 GOSUB 8132: CNT = CNT + Q
7200 IF STR1$ = "" THEN
IF (A > 0 AND B > 0) THEN STR1$ = TST$: PRINT STR1$: TST = 1
END IF
7210 IF STR2$ = "" THEN
IF (A > 0 AND B = 0) THEN STR2$ = TST$: PRINT STR2$: TST = 2
END IF
7220 IF STR3$ = "" THEN
IF (A = 0 AND B > 0) THEN STR3$ = TST$: PRINT STR3$: TST = 3
END IF
7222 '' A=TRUE POSITION B=WRONG PSTN
7230 IF LEN(STR4$) = 0 AND LEN(STR1$) <> 0 THEN
IF TST <> 1 AND (A > 0 AND B > 0) THEN STR4$ = TST$: PRINT STR4$
END IF
7240 IF LEN(STR5$) = 0 AND LEN(STR2$) <> 0 THEN
IF TST <> 2 AND (A > 0 AND B = 0) THEN STR5$ = TST$: PRINT STR5$
END IF
7250 IF LEN(STR6$) = 0 AND LEN(STR3$) <> 0 THEN
IF TST <> 3 AND (A = 0 AND B > 0) THEN STR6$ = TST$: PRINT STR6$
END IF
7299 NEXT M
7300 TR = 0: FL = 0: IF STR1$ <> "" THEN Y$ = STR1$: GOSUB 8132: CNT = CNT + Q
7320 IF STR4$ <> "" THEN Y$ = STR4$: GOSUB 8132: CNT = CNT + Q
7330 IF STR2$ <> "" AND STR5$ <> "" THEN
Y$ = STR2$ + STR5$: GOSUB 8132: CNT = CNT + Q: TR = Q
END IF
7340 IF STR3$ <> "" AND STR6$ <> "" THEN
Y$ = STR3$ + STR6$: GOSUB 8132: CNT = CNT + Q: FL = Q
END IF
7350 '' "IF OTHER END WERE STORED WE COULD PUT THRO A CROSSOVER IE.
'' 0000111 1 0
'' 4444555 0 1
'' TRY = 0000555 X X OR 4444111 X X
7800 COLOR 14: LOCATE X, Q: PRINT "-------------------": X = X + 1
7900 RETURN



8000 '' SUB
8120 COLOR 15, 1: LOCATE 23, Q: INPUT "ENTER GUESS ", Y$
8130 LOCATE 23, Q: PRINT Z$ + Z$: IF X > 22 THEN X = 22
8132 LOCATE X, Q: PRINT MID$(Y$, Q, N);
8140 COLOR 15: Y$ = Y$ + Z$: A = F: B = F: U$ = A$: FOR H = Q TO N
8150 FOR I = Q TO N: C = F: D = F
8160 IF MID$(Y$, I, Q) = MID$(U$, I, Q) THEN C = Q
8170 IF C = Q THEN
A = A + Q: MID$(Y$, I, Q) = ".": MID$(U$, I, Q) = ","
END IF
8200 IF MID$(Y$, H, Q) = MID$(U$, I, Q) THEN D = Q
8210 IF D = Q THEN
B = B + Q: MID$(Y$, H, Q) = ".": MID$(U$, I, Q) = ","
END IF
8240 NEXT I: NEXT H: Y = Y + A + B
8250 PRINT TAB(N + R); A; " "; B; " "; :
IF Y = N OR A + B = N OR X > R * N + N THEN COLOR 14
8260 PRINT "<"; : IF Y <= N THEN PRINT Y
8270 IF A + B = N THEN PRINT N
8280 IF X = R * N + R + R THEN
PRINT
8282 IF A$ <> Y$ THEN
COLOR 30: PRINT A$; : PRINT " - TOO LATE!": PRINT
END IF
END IF
8290 COLOR 15: '' IF A=N THEN GOTO 310
8300 X = X + Q:
RETURN



9900 '' CLS
9910 '' SAVE"COD.BAS"
9920 '' COLOR 5,1,1
9930 '' SYSTEM

END



RETURN TO TOP
PREVIOUS MENU
RETURN TO PMC MENU
HOME PAGE
1