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:

Python3

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!")



C

#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

Balises DE L’article: