38 lines
1,012 B
Text
38 lines
1,012 B
Text
100 D$="123456789"
|
|
110 FOR I=1 TO 4
|
|
120 P=INT(RND(1)*LEN(D$))+1
|
|
130 N$=N$+MID$(D$,P,1)
|
|
140 D$=MID$(D$,1,P - 1)+MID$(D$,P+1,8)
|
|
150 NEXT
|
|
160 PRINT CHR$(147);"A RANDOM NUMBER HAS BEEN CREATED."
|
|
170 PRINT "THE NUMBER HAS FOUR DIGITS FROM 1 TO 9, WITHOUT DUPLICATION."
|
|
200 FOR Q=0 TO 1 STEP 0
|
|
210 INPUT "GUESS THE NUMBER: "; G%
|
|
219 REM CONVERT TO STRING AND TRIM LEADING SPACE
|
|
220 G$=RIGHT$(STR$(G%),4)
|
|
230 M=LEN(G$)<>4 OR G%=0
|
|
240 IF NOT M THEN GOSUB 600
|
|
250 IF NOT M THEN GOSUB 700
|
|
260 IF M THEN PRINT "THE GUESS IS MALFORMED.":NEXT Q
|
|
270 B=0
|
|
280 C=0
|
|
300 FOR I=1 TO 4
|
|
310 C$=MID$(N$,I,1)
|
|
320 BULL=MID$(G$,I,1)=C$
|
|
330 COW=0
|
|
340 IF NOT BULL THEN FOR J=1 TO 4:COW=MID$(G$,J,1)=C$:IF NOT COW THEN NEXT J
|
|
350 B=B+ABS(BULL)
|
|
360 C=C+ABS(COW)
|
|
370 NEXT I
|
|
380 PRINT "BULLS:";B:PRINT "COWS:";C
|
|
390 Q=ABS(G$=N$)
|
|
400 NEXT Q
|
|
500 PRINT "GOOD JOB!":END
|
|
600 FOR I=2 TO 4:M=MID$(G$,I,1)="0"
|
|
610 IF NOT M THEN NEXT I
|
|
620 RETURN
|
|
700 FOR I=1 TO 3
|
|
710 FOR J=I+1 TO 4
|
|
720 M=MID$(G$,I,1)=MID$(G$,J,1)
|
|
730 IF NOT M THEN NEXT J,I
|
|
740 RETURN
|