10 REM BULLS AND COWS
20 REM à ROBERT ERSKINE 30 MODE 1 40 BORDER 0:INK 0,0:INK 1,24:INK 2,20:INK 3,8:PAPER 0:PEN 1:CLS 50 LN=1 60 SYMBOL 251,0,2,3,255,126,126,66,66 70 SYMBOL 252,0,0,3,255,126,126,66,66 80 GOTO 750 90 DIM N(4), A(4),H(4) 100 LN=1: R=RND:LOCATE 4,14:PRINT" HOW MANY GUESSES DO YOU WANT";:INPUT T 110 GOSUB 380 120 CLS: LOCATE 10,14:PRINT"I HAVE CHOSEN A NUMBER":FOR X= 1 TO 1000:NEXT 130 GOSUB 430 140 FOR Q = 1 TO T 150 LOCATE 1,23: PRINT"ENTER YOUR GUESS NOW [4 DIGITS]";:INPUT G$:IF LEN (G$)<>4 THEN LOCATE 32,23:PRINT SPACE$(7);:GOTO 150 160 FOR F=1 TO 4:IF ASC(MID$(G$,F,1))<48 OR ASC(MID$(G$,F,1))>57 THEN LOCATE 32, 23:PRINT SPACE$(7);:GOTO 150:NEXT F 170 LOCATE 32,23:PRINT SPACE$(7); 180 GOSUB 250 190 GOSUB 460 200 IF BLACK<4 THEN NEXT Q:FOR X=1 TO 300:NEXT X:GOTO 600 210 :' IF BLACK >3 THEN FOR X=I TO 300:NEXT X:GOTO 4000 220 :' NEXT 230 LOCATE 9,25:PRINT"YOU HAVE HAD";Q;"TRIES";:FOR X=1 TO 300:NEXT X:GOTO 600 240 REM *** CHECK GUESS 250 BLACK=0:WHITE=0 260 FOR X=1 TO 4 : A(X)=0:H(X)=0:J(X)=0:NEXT X 270 FOR X=1 TO 4 280 A(X)=VAL(MID$(G$,X,1)):NEXT X 290 FOR X=1 TO 4 300 IF A(X)=N(X) THEN BLACK=BLACK+1:H(X)=1:J(X)=1 310 NEXT X 320 FOR X=1 TO 4 330 FOR Y=1 TO 4 340 IF A(X)=N(Y) AND H(Y)=0 AND J(X)=0 THEN WHITE=WHITE+1:H(Y)=1:J(X)=1:GOTO 360 350 NEXT Y 360 NEXT X 370 RETURN 380 REM 390 FOR X= 1 TO 4 400 N(X)=INT(RND*9)+1 410 NEXT X 420 RETURN 430 ENT 1,50,2,2:SOUND 1,284,50,15,0,1: CLS 440 PRINT"GUESSES BULLS COWS" 450 RETURN 460 LN=LN+1:LOCATE 1,LN:PRINT G$;: IF BLACK=0 THEN 520 470 F=14 480 FOR X=1 TO BLACK 490 LOCATE F,LN:PEN 3:PRINT CHR$(251);: PEN 1 500 F=F+1 510 NEXT X 520 IF WHITE=0 THEN 580 530 F=23 540 FOR X=1 TO WHITE 550 LOCATE F,LN:PEN 3:PRINT CHR$(252);:PEN 1 560 F=F+1 570 NEXT 580 PRINT 590 RETURN 600 IF BLACK<4 THEN 640 610 LOCATE 29,3:PEN 2:PRINT"CORRECT!!":LOCATE 29,5:PRINT"I CHOSE";:PEN 1:LOCATE 29,7 620 FOR X=1 TO 8: ENT 1,100,-X,2:SOUND 1 ,284,50,15,0,1:NEXT 630 GOTO 650 640 LOCATE 29,3:PEN 2:PRINT" HARD LUCK!" :LOCATE 29,5:PRINT" I CHOSE";:PEN 1:LOCATE 29,7 650 FOR X=1 TO 4 660 PRINT N(X); 670 NEXT 680 LOCATE 33,11:PEN 2:PRINT"AND";:LOCATE 29,13:PRINT"YOU GUESSED";:PEN 1:LOCATE 29,15 690 FOR X=1 TO 4 700 PRINT A(X); 710 NEXT 720 FOR X=1 TO 30:SOUND 2,(X+100):NEXT X 730 LOCATE 1,23:PRINT CHR$(20):LOCATE 9, 24:PRINT"PRESS ANY KEY TO RESTART"; 740 IF INKEY$="" THEN GOTO 740 ELSE CLS: LOCATE 1,2:GOTO 100 750 LOCATE 1,1:PRINT CHR$(24);"BULLS AND COWS ";CHR$(24):PRINT 760 LOCATE 1,5 770 PRINT:PRINT"The object of Bulls and Cows is to guessa four digit number chosen by the computer." 780 PRINT:PEN 2:PRINT"After each guess the computer will give you clues. Each BULL indicates a correctdigit in the correct position" 790 PRINT"and each COW indicates a correct digit in the wrong position." 800 LOCATE 9,21:PEN 3:PRINT"PRESS ANY KEY TO START":PEN 1 810 IF INKEY$="" THEN 810 ELSE CLS 820 GOTO 90 |