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