Cours de programmation séquentielle

Le nombre secret

Buts

Énoncé

Écrire un programme permettant de jouer au nombre secret. Le but est de faire chercher à l’utilisateur·trice un nombre déterminé aléatoirement par l’ordinateur. Le nombre de coups mis pour trouver la solution sera compté et affiché en fin de la partie. La borne maximum pour le choix du nombre caché sera demandée à l’utilisateur·trice.

Pour générer des nombres aléatoires, utiliser la fonction rand() qui retourne un nombre aléatoire entre 0 et l’entier maximum (cf. la commande man 3 rand). Pour initialiser le générateur denombre aléatoire, appeler la fonction srand() qui prend en paramètre un entier non-signé(la graine). On peut par exemple passer time(NULL) en paramètre à srand(). L’appel time(NULL) retourne l’horloge système en secondes.

Il est nécessaire d’inclure les bibliothèques suivantes dans le programme:

#include <stdio.h>      /* printf(), scanf() */
#include <stdlib.h>     /* srand(), rand() */
#include <time.h>       /* time() */
#include <math.h>       /* log() */

A la compilation il faut également ajouter le flag -lm pour générer correctement l’exécutable.

Déroulement du programme

Exercice supplémentaire

Une fois ce qui précède terminé, échangez les rôles!

Écrire un programme où l’ordinateur et l’utilisateur·trice échangent leurs rôles. Afin de signifier à l’ordinateur que le nombre est plus grand ou plus petit, l’utilisateur·trice rentre < ou > respectivement et = en cas de victoire de l’ordinateur (il se pourrait que le type char vous soit utile). Implémentez différentes stratégies pour l’ordinateur (recherche exhaustive, bisection, etc.).

L’ordinateur doit pouvoir détecter si vous avez triché!


  1. Par exemple: “Vous devez entrer un nombre plus grand ou égal à zéro.” ou “Vous devez entrer un nombre plus petit que ‘max’.”.↩︎