GeeksforGeeks
La plupart des geeks issus d’une formation en CS (Informatique) pensent à leur tout premier projet après avoir fait un Langage de programmation. Ici, vous obtiendrez votre tout premier projet et le projet de base, dans cet article.
Tâche: Voici les étapes:
- Construisez un jeu de devinettes numériques, dans lequel l’utilisateur sélectionne une plage.
- Disons que l’utilisateur a sélectionné une plage, c’est-à-dire de A à B, où A et B appartiennent à un entier.
- Un entier aléatoire sera sélectionné par le système et l’utilisateur doit deviner cet entier dans le nombre minimum de suppositions
Analyse:
Explication 1: Si l’utilisateur entre une plage, disons de 1 à 100. Et le compilateur a sélectionné au hasard 42 comme entier. Et maintenant, le jeu de devinettes a commencé, de sorte que l’utilisateur a entré 50 comme première estimation. Le compilateur affiche » Réessayez! Tu l’as deviné trop haut « . Cela signifie que le nombre aléatoire (c’est-à-dire 42) ne tombe pas dans la plage de 50 à 100. C’est l’importance de deviner la moitié de la gamme. Et encore une fois, l’utilisateur devine la moitié de 50 (Pourriez-vous me dire pourquoi?). Donc, la moitié de 50 est de 25. L’utilisateur entre 25 comme seconde estimation. Cette fois, le compilateur affichera: « Essayez à nouveau! Vous avez deviné trop petit « . Cela signifie que les entiers inférieurs à 25 (de 1 à 25) sont inutiles à deviner. Maintenant, la plage de devinettes de l’utilisateur est plus courte, c’est-à-dire de 25 à 50. Intelligemment! L’utilisateur a deviné la moitié de cette plage, de sorte que l’utilisateur a deviné 37 comme sa troisième supposition. Cette fois encore, le compilateur affiche la sortie, « Essayez à nouveau! Vous avez deviné trop petit « . Pour l’utilisateur, la plage de devinettes devient plus petite à chaque estimation. Maintenant, la plage de devinettes pour l’utilisateur est de 37 à 50, pour laquelle l’utilisateur a deviné 43 comme sa quatrième estimation. Cette fois, le compilateur affichera une sortie « Réessayer! Tu l’as deviné trop haut « . Ainsi, la nouvelle plage de devinettes pour les utilisateurs sera de 37 à 43, là encore pour laquelle l’utilisateur a deviné la moitié de cette plage, c’est-à-dire 40 comme cinquième estimation. Cette fois, le compilateur affiche la sortie, « Essayez à nouveau! Vous avez deviné trop petit « . Laissant la conjecture encore plus petite telle que de 41 à 43. Et maintenant, l’utilisateur a deviné 41 comme sa sixième supposition. Ce qui est faux et affiche la sortie « Réessayer! Vous avez deviné trop petit « . Et enfin, l’Utilisateur a Deviné le bon nombre qui est 42 comme sa septième supposition.
Nombre total de Suppositions = 7
Explication 2: Si les entrées de l’utilisateur vont, disons de 1 à 50. Et le compilateur a sélectionné au hasard 42 comme entier. Et maintenant, le jeu de devinettes a commencé. Donc, la moitié de 50 est de 25. L’utilisateur entre 25 comme première estimation. Cette fois, le compilateur affichera: « Essayez à nouveau! Vous avez deviné trop petit « . Cela signifie que les entiers inférieurs à 25 (de 1 à 25) sont inutiles à deviner. Maintenant, la plage de devinettes de l’utilisateur est plus courte, c’est-à-dire de 25 à 50. Intelligemment! L’utilisateur a deviné la moitié de cette plage, de sorte que l’utilisateur a deviné 37 comme sa deuxième supposition. Cette fois encore, le compilateur affiche la sortie, « Essayez à nouveau! Vous avez deviné trop petit « . Pour l’utilisateur, la plage de devinettes devient plus petite à chaque estimation. Maintenant, la plage de devinettes pour l’utilisateur est de 37 à 50, pour laquelle l’utilisateur a deviné 43 comme sa troisième estimation. Cette fois, le compilateur affichera une sortie « Réessayer! Tu l’as deviné trop haut « . Ainsi, la nouvelle plage de devinettes pour les utilisateurs sera de 37 à 43, là encore pour laquelle l’utilisateur a deviné la moitié de cette plage, c’est-à-dire 40 comme quatrième estimation. Cette fois, le compilateur affiche la sortie, « Essayez à nouveau! Vous avez deviné trop petit « . Laissant la conjecture encore plus petite telle que de 41 à 43. Et maintenant, l’utilisateur a deviné 41 comme sa cinquième supposition. Ce qui est faux et affiche la sortie « Réessayer! Vous avez deviné trop petit « . Et enfin, l’Utilisateur a Deviné le bon nombre qui est 42 comme sa sixième supposition.
Nombre total de suppositions = 6
Ainsi, le nombre minimum de suppositions dépend de la plage. Et le compilateur doit calculer le nombre minimum de devinettes dépend de la plage, seul. Pour cela, nous avons une formule:-
Nombre minimum de devinettes = log2 (borne supérieure – borne inférieure + 1)
Algorithme: Voici les étapes:
- L’utilisateur entre la limite inférieure et la limite supérieure de la plage.
- Le compilateur génère un entier aléatoire entre la plage et le stocke dans une variable pour des références futures.
- Pour les devinettes répétitives, une boucle while sera initialisée.
- Si l’utilisateur a deviné un nombre supérieur à un nombre sélectionné au hasard, l’utilisateur obtient une sortie « Réessayer ! Vous avez deviné trop élevé »
- Sinon Si l’utilisateur a deviné un nombre plus petit qu’un nombre sélectionné au hasard, l’utilisateur obtient une sortie « Réessayez! Vous avez deviné trop petit »
- Et si l’utilisateur a deviné dans un nombre minimum de suppositions, l’utilisateur reçoit un « Félicitations! » Sortie.
- Sinon, si l’utilisateur n’a pas deviné l’entier dans le nombre minimum de suppositions, il aura « Meilleure chance La prochaine fois! » sortie.
Voici l’implémentation de l’algorithme:
import
random
import
math
lower
=
int
(
input
(
"Enter Lower bound:- "
))
upper
=
int
(
input
(
"Enter Upper bound:- "
))
x
=
random.randint(lower, upper)
print
(
"\n\tYou've only "
,
round
(math.log(upper
-
lower
+
1
,
2
)),
" chances to guess the integer!\n"
)
count
=
0
while
count < math.log(upper
-
lower
+
1
,
2
):
count
+
=
1
guess
=
int
(
input
(
"Guess a number:- "
))
if
x
=
=
guess:
print
(
"Congratulations you did it in "
,
count,
" try"
)
break
elif
x > guess:
print
(
"You guessed too small!"
)
elif
x < guess:
print
(
"You Guessed too high!"
)
if
count >
=
math.log(upper
-
lower
+
1
,
2
):
print
(
"\nThe number is %d"
%
x)
print
(
"\tBetter Luck Next time!"
)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int
main()
{
int
number, guess, nguesses=1;
srand
(
time
(0));
number =
rand
()%100 + 1;
do
{
printf
(
"Guess the number between 1 to 100\n"
);
scanf
(
"%d"
, &guess);
if
(guess>number)
{
printf
(
"you guessed to high\n"
);
}
else
if
(guess<number)
{
printf
(
"you guessed too low\n"
);
}
else
{
printf
(
"You guessed the correct number"
);
printf
(
"attempts : %d\n"
, nguesses);
}
nguesses++;
}
while
(guess!=number);
return
0;
}
SORTIE: Voici la sortie du programme ci-dessus
SORTIE POUR LE JEU DE DEVINETTES