BAGELS.BAS
Jeux en GW-Basic (PC-Basic)

PC-BASIC

BAGELS.BAS

Dans ce jeu, l'ordinateur choisit un numéro secret à 3 chiffres en utilisant les chiffres de 0 à 9 et vous essayez de deviner de quoi il s'agit. Vous avez droit à vingt essais.

Aucun chiffre n'est répété. Après chaque supposition, l'ordinateur vous donnera des indices sur votre supposition comme suit :

PICO Un chiffre est correct, mais dans au mauvais endroit

FERMI Un chiffre est dans le bon placer des

BAGELS Aucun chiffre n'est correct

Vous apprendrez à tirer des conclusions à partir des indices et, avec la pratique, vous apprendrez à améliorer votre score.

Il existe plusieurs bonnes stratégies pour jouer à Bagels. Après avoir trouvé une bonne stratégie, voyez si vous pouvez l'améliorer. Ou essayez une stratégie complètement différente et voyez si c'est mieux.

Bien que le programme permette jusqu'à vingt suppositions, si vous utilisez une bonne stratégie, il ne devrait pas prendre plus de huit suppositions pour obtenir un nombre.

Les auteurs de ce programme original sont D. Resek et P. Rowe du Lawrence Hall of Science, Berkeley, Californie.

1 CLS
5 PRINT TAB(33);"BAGELS"
10 PRINT TAB(15);"CREATTIVE CONPUTING H0RRISTOwN, NEW JERSEY"
15 REM *** BAGLES NUHBER GUESSING GAHE
20 REM *** ORIGINAL SOURCE UNKN0UN BUT SUSPECTED TO BE
25 REM *** LAURENCE HALL 0F SCIENCE, U.C. BERKELY
30 DIM A1(6),A(3),B(3)
40 Y=0:T=255
50 PRINT:PRINT:PRINT
70 INPUT "W0ULD YOU LIKE THE RULES (YES 0R NO)";A$
90 IF LEFT$(A$,1)="N" THEN 150
100 PRINT:PRINT "I AM THINKING 0F A THREE-DIOIT NUMBER. TRY TO GUESS"
110 PRINT "MY NUNBER AND I WILL GIVE YOU CLUES AS F0LL0WS:"
120 PRINT " PICO - ONE DIGIT CORRECT BUT IN THE WRONG POSITION"
130 PRINT " FERHI - ONE DIGIT CORRECT AND IN THE RIGHT POSITION"
140 PRINT " BAGELS - N0 DIGITS CORRECT"
150 FOR I=1 TO 3
160 A(I)= INT(10*RND(1))
165 IF I=1 THEN 200
170 IF A(2) = A(1) THEN 160
175 IF I=3 THEN IF A(3) = A(1) OR A(3) = A(2) THEN 160
200 NEXT I
210 PRINT:PRINT "0.K. I HAVE A NUNBER IN HIND."
220 FOR I=1 TO 20
230 PRINT "GUESS I";I
240 INPUT A$
245 IF LEN(A$)<>3 THEN 630
250 FOR Z=1 TO 3:A1(Z)=ASC(MID$(A$,Z,1)):NEXT Z
260 FOR J=1 TO 3
270 IF A1(J)<48 THEN 300
280 IF A1(J)>57 THEN 300
285 B(J)=A1(J)-48
290 NEXT J
295 GOTO 320
300 PRINT "WHAT?"
310 GOTO 230
320 IF B(1)=B(2) THEN 650
330 IF B(2)=B(3) THEN 650
340 IF B(3)=B(1) THEN 650
350 C=0:D=0
360 FOR J=1 TO 2
370 IF A(J)<>B(J+1) THEN 390
380 C=C+1
390 IF A(J+1)<>B(J) THEN 410
400 C=C + 1
410 NEXT J
420 IF A(1)<>B(3) THEN 440
430 C=C+1
440 IF A(3)<>B(1) THEN 460
450 C=C+1
460 FOR J=1 TO 3
470 IF A(J)<>B(J) THEN 490
480 D=D+1
490 NEXT J
500 IF D=3 THEN 680
505 IF C=0 THEN 545
520 FOR J=1 TO C
530 PRINT "PICO ";
540 NEXT J
545 IF D=0 THEN 580
550 FOR J=1 TO D
560 PRINT "FERHI ";
570 NEXT J
580 IF C+D<>0 THEN 600
590 PRINT "BA6ELS";
600 PRINT
605 NEXT I
610 PRINT "0H WELL"
615 PRINT "THAT'S TWENTY GUESSES. MY NUHBER WAS";100*A(1)+10*A(2)+A(3)
620 GOTO 700
630 PRINT "TRY GUESSINO A THREE-DIGIT NUMBER.":GOTO 230
650 PRINT "0H, I FORGOT TO TELL YOU WHAT THE NUNBER I HAVE IN MIND"
660 PRINT "HAS N0 TWO DIGITS THE SAME.":GOTO 230
680 PRINT "YOU GOT IT!!!":PRINT
690 Y=Y+1
700 INPUT "PLAY AGAIN (YES OR NO)";A$
720 IF A$="YES" THEN 150
730 IF Y=0 THEN 750
740 PRINT:PRINT "A";Y;"POINT BAOELS BUFF!!"
750 PRINT "HOPE YOU HAD FUN. BYE."
999 END

 

 

 

 

 

 

 

Recherche personnalisée