Ok merci, pour ta réponse
donc je continue sur le SDZ ;)
"2D trisométrique"
![]()
Donc voila j'ai reussi mais la j'ai voulus rajouter un système de niveaux. Mais je ne sais pas si c'est un bug (Je suppose que non) mais lorsque je choisi le niveau 1 (De 1 à 10) je tape 0 au premier coup et c'est toujours bon....
Voici mon code :
http://pastebin.com/a5mXZJJh
Salut Kindeur, encore une fois ca serait vraiment bien si tu pouvais indenter ton code un peu parce que la ca donne pas trop envie de le relire. Je pense que t'as pas du poster ton code en tant que langage C car il n'y a pas de couleur syntaxique non plus.
Un bug c'est quand quelque chose se passe pas comme tu l'aurais souhaite donc apparemment si je comprends bien... c'est bien un bug ! ![]()
si t'es sur Codeblocks click sur "Plugin" puis "Source code Formatter" ça va t'indenter ton code et il sera plus lisible
je te l'ai fait vite fait : http://pastebin.com/CTXwm0Qs
c'est quand même beaucoup plus lisible
arf voila j'ai fais les 2 choses. Voici le code :
http://pastebin.com/xk80gtYs
je viens de jeter un coup d’œil, lis le chapitre sur les fonction et utilise une boucle switch pour les choix
tu pourrais avoir une fonction du genre :
void jeu(int min,int max,int joueur)
{
//le code de ton jeu
}
Ok je vais essayer mais pourrais tu m'expliquer à quoi sert le void jeu(int min, int max,int joueur)
????
c'est une fonction (le chapitre suivant le TP sur le + ou - )
Je ne saurais pas te l'expliquer mais en gros tu lui donne un morceau de code et lui te fait ce qu'il y'a dedans quand tu l'appelle et tu peut l'appeler autant que tu veut, donc toi tu écris une seul fois le code du jeu puis a chaque fois que tu demande ta fonction le compiler va te chercher le code et le mettre a la place.
Lis le tuto sur le SDZ il est juste après le plus ou moins et tu comprendras mieux
Pas la charue avant les boeufs, je suis en train de lire ton code et il y a des erreurs de logique partout donc laisse moi juste trois gorgees de cafe pour essayer de comprendre ce que tu as bien voulu faire.. Et ne tente meme pas de continuer les prochains chapitres avant d'avoir refait quelques exercices supplementaires sur les boucles et les conditions ![]()
Ok c'est bon. Ton bug c'est que dans le cas niveau = 1 tu oublies d'initialiser ton nombre mystere a autre chose que 0.
Alors maintenant j'ai quelques rectifications a te faire faire. D'une c'est toujours un peu plus lisible de bien declarer les variables une par une et pas "a la chaine".
De deux, tu as beaucoup de choses repetees pour rien dans ton code.... et la repetition c'est mal puisque ca implique generalement un copier-coller et donc veritablement comme le montre ce bug : des mauvaises facons de copier-coller. Par exemple pour le mode 1 joueur il y a un moyen de n'avoir qu'une seule fois le code qui check si ton nombre est correct ou non et qui redemande dans le cas contraire jusqu'a ce que tu gagnes.... Trouve un moyen de ne faire apparaitre ces lignes qu'une seule fois.
Autres question: pourquoi MIN = 1 seulement pour le niveau 1 ?
Es-tu sur que l'on doit initialiser la graine de srand a chaque boucle.... ?
En mode 2 joueurs pourquoi ne pas plutot faire deviner le nombre au tour par tour aux 2 joueurs par exemple ?
Ah donc le premier résultat s'est à moi de le choisir si j'ai bien compris, ensuite les répétitions je vais essayer de les trouver et de les enlever, pour le mode 2 joueurs c'est une bonne idée, je ne l'avais pas compris comme son le mode 2 joueurs : D
Ensuite pour le MIN = 1 c'est juste que je n'avais pas fini de le mettre aux autres, mais sauf si je les déclares à la chaîne ça ferais des lignes en plus pour rien et beaucoup trop alors qu'à la chaine se permet de tout mettre en 1/2 ligne ;)
Après dis-moi s'il y a une différence
Merci
Je n'ai pas compris ce que tu voulais dire par "le premier résultat c'est à moi de le choisir". De quel résultat parles tu ?
Je n'ai pas compris non plus ce que tu entends par "MIN = 1 c'est juste que je n'avais pas fini de le mettre aux autres". Mettre quoi ? C'est qui les autres ? Ta variable MIN tu l'as initialisée à 0, pourquoi ne pas l'avoir initialisée tout simplement à 1 ? Ya-t-il une raison spéciale pour laquelle tu veuilles que MIN vale 1 et non pas 0 dans le cas du niveau de difficulté 1 ?
Il n'y a pas de différence fondamentale c'est juste beaucoup plus lisible de lire les variables l'une après l'autre que devoir aller la chercher dans une ligne où on ne sait plus trop son type, et ne pas être sûr qu'on ait pas déjà oublié de l'initialiser au passage. Et on ne fait pas "plus de lignes pour rien", le code ce n'est pas une course aux lignes inutiles, c'est une course aux actions inutiles. Par exemple avoir deux fois le même code comme tu viens de faire alors qu'il pourrait n'apparaître qu'une fois CA ce sont des lignes en plus pour rien.... qui comme par hasard d'ailleurs t'on amenées au bug que tu es venu évoquer dernièrement sur ce forum.
Et tu n'as pas répondu pourquoi tu initialisais toujours la seed de ta fonction rand plusieurs fois dans ton programme...
"Je n'ai pas compris ce que tu voulais dire par "le premier résultat c'est à moi de le choisir". De quel résultat parles tu ?"
Non j'avais mal compris ;)
"Je n'ai pas compris non plus ce que tu entends par "MIN = 1 c'est juste que je n'avais pas fini de le mettre aux autres". Mettre quoi ? C'est qui les autres ? Ta variable MIN tu l'as initialisée à 0, pourquoi ne pas l'avoir initialisée tout simplement à 1 ? Ya-t-il une raison spéciale pour laquelle tu veuilles que MIN vale 1 et non pas 0 dans le cas du niveau de difficulté 1 ?"
C'est juste que j'avais oublié de mettre aux autres niveaux MIN = 1, car je souhaite que le chiffre minimum serait 1.
"Il n'y a pas de différence fondamentale c'est juste beaucoup plus lisible de lire les variables l'une après l'autre que devoir aller la chercher dans une ligne où on ne sait plus trop son type, et ne pas être sûr qu'on ait pas déjà oublié de l'initialiser au passage. Et on ne fait pas "plus de lignes pour rien", le code ce n'est pas une course aux lignes inutiles, c'est une course aux actions inutiles. Par exemple avoir deux fois le même code comme tu viens de faire alors qu'il pourrait n'apparaître qu'une fois CA ce sont des lignes en plus pour rien.... qui comme par hasard d'ailleurs t'on amenées au bug que tu es venu évoquer dernièrement sur ce forum."
Ah maintenant je le saurais
"Et tu n'as pas répondu pourquoi tu initialisais toujours la seed de ta fonction rand plusieurs fois dans ton programme..."
Car je n'avais pas pensé à le mettre 1 seule fois, j'ai réussi a finalement le caser une seule fois
Merci de tes réponses ![]()
De rien. C'est encore mieux pour nous, pour toi et pour les autres si tu postes les petites modifications que tu as faites dans ton code ![]()
Salut, malgré que je change le nombre mystère de 0, il reste toujours 0 voici mon nouveau code :
http://pastebin.com/s7HUvHBS
Merci
c'est normale tu lance le chiffre aléatoire a la ligne 24 alors que tu donne les Min et Max a la ligne 33, et par defaut ils sont a 0 -> ton chiffre mystère est de 0.
Ah ok donc en clair il faut que je lance le chiffre aléatoire après les MIN et MAX?
exactement