23 lines
957 B
QBasic
23 lines
957 B
QBasic
10 PRINT CHR$(147):PRINT " CODE BREAKER":PRINT
|
|
20 PRINT "GUESS THE FOUR DIFFERENT DIGITS.":PRINT "RIGHT PLACE = HIT, WRONG PLACE = NEAR":PRINT
|
|
30 PRINT "PRESS ANY KEY":GET A$:IF A$="" THEN 30
|
|
35 R=RND(-TI)
|
|
40 DIM C(4),G(4),U(9):FOR I=1 TO 4
|
|
50 C(I)=INT(RND(1)*10):IF U(C(I)) THEN 50
|
|
60 U(C(I))=1:NEXT:PRINT CHR$(147)
|
|
70 FOR T=1 TO 10:PRINT "GUESS";T;"OF 10 (OR Q)";:INPUT G$
|
|
80 IF G$="Q" THEN 190
|
|
90 IF LEN(G$)<>4 THEN PRINT "ENTER FOUR DIGITS.":GOTO 70
|
|
100 FOR I=1 TO 4:G(I)=ASC(MID$(G$,I,1))-48:IF G(I)<0 OR G(I)>9 THEN PRINT "DIGITS ONLY.":GOTO 70
|
|
110 NEXT:H=0:N=0
|
|
120 FOR I=1 TO 4:IF G(I)=C(I) THEN H=H+1
|
|
130 FOR J=1 TO 4:IF I<>J AND G(I)=C(J) THEN N=N+1
|
|
140 NEXT J,I:PRINT H;"HIT ";N;"NEAR":PRINT
|
|
150 IF H=4 THEN PRINT "CODE BROKEN IN";T;"GUESSES!":GOTO 180
|
|
160 NEXT
|
|
170 PRINT "THE CODE WAS";:FOR I=1 TO 4:PRINT C(I);:NEXT:PRINT
|
|
180 PRINT:PRINT "R=REPLAY Q=QUIT"
|
|
190 GET A$:IF A$="R" THEN RUN
|
|
200 IF A$<>"Q" THEN 190
|
|
210 PRINT CHR$(147):END
|
|
|