Hier, j'ai réussi à écrire le code du TP plus ou moins en C en utilisant une boucle while au lieu de do while. Je sais que do while est plus "correct" mais là n'est pas la question
En effet, bouffon que je suis, je n'ai pas enregistré le code. Du coup, je me ssuis dis que j'allais le réécrire mais... J'ai un problème le nombre aléatoire semble changer à chaque fois que je rerentre un nouveau nombre dans le scanf (enfin je ne suis pas sûr de ce que ça fait exactement... Pouvez-vous m'indiquer mes erreurs ? Et oui, j'écris n'importe comment avec des \n partout mais j'étais désesperé j'ai tenté un peu n'importe quoi.
Merci de colorer votre code à l'aide du bouton Code
Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.
tu as crées MIN et MAX (ce qui est une très bonne idée) Dommage de ne pas les réutiliser dans le printf "choisisser entre MIN et MAX" si tu vois ce que je veux dire ...
Pour le reste à part le \n dans le scanf ( repéré par le regard vif de edgarjacobs )
char code[]="Farpait";//le bouton </> est plus pratique car on peut faire des copié collé
- Edité par neuneutrinos 22 janvier 2020 à 11:18:47
Bonjour ! J'me suis un peu amusé, et au lieu de choisir des nombres à entrer manuellement, je trouve plus épuré de faire comme suggéré avec 3 niveaux de difficultés. Je suis sûr que c'est optimisable, mais je ne suis qu'à ce stade du cours C donc j'utilise que les formules que je connais ! Dites-moi ce que je peux rajouter (le mode 2 joueurs, je l'ai essayé mais je trouve pas ça forcément amusant en pratique).
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ( int argc, char** argv )
{
int nombreRNG = 0, nombreEntre = 0, MAX = 100, MIN = 0, compteur = 0, nouvellePartie = 1, difficulte = 0;
printf("\n\n==Bienvenue au jeu du Plus-ou-moins.==");
while (nouvellePartie == 1)
{
printf("\n\nChoisis ton niveau de difficulté :\n- Facile ? Tappe 1.\n- Intermédiaire ? Tappe 2.\n- Difficile ? Tappe 3.\n\nNiveau : ");
scanf("%d", &difficulte);
switch (difficulte)
{
case 1:
MAX = 10;
break;
case 2:
MAX = 100;
break;
case 3:
MAX = 1000;
break;
default:
printf("\nFais pas le malin. On va te mettre en facile.\n");
MAX = 10;
}
printf("\nJe pense à un nombre entre 0 et %d. Devine : ", MAX);
srand(time(NULL));
nombreRNG = (rand() % (MAX - MIN + 1)) + MIN;
while (nombreRNG != nombreEntre)
{
compteur = compteur+1;
scanf("%d", &nombreEntre);
if (nombreEntre > nombreRNG)
{
MAX = nombreEntre;
printf("\nC'est moins, donc entre %d et %d.\nChoisis un nouveau nombre : ", MIN, MAX);
}
if (nombreEntre < nombreRNG)
{
MIN = nombreEntre;
printf("\nC'est plus, donc entre %d et %d.\nChoisis un nouveau nombre : ", MIN, MAX);
}
}
printf("\n\nGg wp ! Le tout en %d coups !\n\n", compteur);
compteur = 0;
printf("Tu veux rejouer ?\nOui ? Tappe 1. \nNon ? Tappe 0.\n\nAlors ? : ");
scanf("%d", &nouvellePartie);
if (nouvellePartie == 1)
printf("\n\n==Et z'est rebardiiii== !\n");
}
printf("\nA plus tard !\n");
return 0;
}
Ah et au fait, merci beaucoup de vos réponses, ça m'avait tourmenté toute la nuit ce foutu \n
- Edité par DavidKravetz 22 janvier 2020 à 17:38:56
Je l'ai fait et j'ai rajouté le mode 02 joueurs, mais on dirait que t'aime pas beaucoup.
J'ai rajouté aussi une sorte de records, a chaque fois que le joueur essaie de deviner le nombre, on compte ses coups. On enregistrera ses coups dans un fichier texte ou bin avec le nom/pseudo du joueur en question.
Et quand un autre joueur voudra jouer, tu pourrais afficher les 03 premiers records de ton fichier texte (les records devront être classés en ordre décroissant, celui qui a deviné le nombre plus vite sera en tête donc).
Tu pourrais rajouter un autre niveau de difficulté:
le joueur ne connait pas l'intervalle dans lequel se trouve le nombre mystère. C'est le programme qui le détermine de façon "aléatoire" dans un intervalle donné.
Par exemple, tu choisis un nombre entre 100 et 1000000, mais tu ne dis pas au joueur dans quel intervalle il se trouve.
Si tu as choisi un petit nombre, le joueur peut essayer dans les grands nombres.
Si le nombre est grand, le joueur peut râler dans les petits nombres.
- Edité par PierrotLeFou 23 janvier 2020 à 7:23:44
Le Tout est souvent plus grand que la somme de ses parties.
Une idée: calculer la moyenne du nombre de coups tentés avant de trouver la solution
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
TP Plus ou moins en C
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Le Tout est souvent plus grand que la somme de ses parties.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent