TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : 1 2 3 Suivante | |
| Pseudo | Commentaire |
|---|---|
| Page : 1 2 3 Suivante | |
iPoulet
|
# Posté le 02/03/2006 à 13:24:19 - Ce membre a mis la note : 19 |
![]() Groupe : Membres |
Ben et elle est où la première lettre du mot à trouver ?
19 pour la peine. |
M@teo21
|
# Posté le 02/03/2006 à 14:37:55 - Ce membre n'a pas mis de note |
Doh ! Nuts. Mmh, donuts !![]() ![]() |
Ah oui j'avais oublié cette règle du pendu.
Bah, de toute façon c'est ultra simple à faire : il suffit de mettre lettreTrouvee[0] à 1 dès le début et basta
Ayez l'initiative de prendre des initiatives, mon programme n'est qu'une possibilité, ce n'est pas la référence absolue. Vous pouvez faire mieux, d'ailleurs je vous invite à le faire. Ce qui se conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément. Nicolas Boileau (je suis fan) Suivez l'aventure du SdZ et de Simple IT sur notre blog ! |
Kr00pS
|
# Posté le 02/03/2006 à 17:01:16 - Ce membre a mis la note : 20 |
Trashed and Lost![]() Groupe : Membres |
Pas mal ce TP
La première version sans dictionnaire externe est assez simple par contre la deuxième j'y était presque mais j'ai pas reussi
Un petit 20 car j'adore avoir du fil à retordre
|
Janeo
|
# Posté le 02/03/2006 à 18:40:49 - Ce membre a mis la note : 19 |
|
Groupe : Membres |
j'aurais jamais cru que réalisé un pendu serait si difficile
néanmoins le tuto est génial 19 |
louisclem
|
# Posté le 03/03/2006 à 18:39:05 - Ce membre a mis la note : 18 |
J'aime le![]() Groupe : Membres |
Cette fois ci, je dis bravo
Je trouve le sujet du TP très intéressant, et qui fait très bien réutiliser les connaissances. Il n'est pas trop dur (enfin, pour moi ) et je pense qu'un zérO qui a bien suivi les cours ne devrait pas avoir de gros gros problèmes là. Donc, c'est un très bon TP au sujet intéressant. La correction est bien faite aussi. Enfin, voilà, bravo
Faut juste que je cherche un dictionnaire au format texte, je sais pas où on peut en trouver, ça serait utile
|
mleg
|
# Posté le 03/03/2006 à 23:11:29 - Ce membre n'a pas mis de note |
|
None Groupe : Membres |
Pourquoi ne pas proposer à l'utilisateur de configurer son dico ?
|
Meothed
|
# Posté le 03/03/2006 à 23:11:52 - Ce membre a mis la note : 19 |
|
Groupe : Membres |
19, mais c'est vraiment pour "ne pas mettre 20"...
J'ai pas encore fini le TP d'ailleur mais je bosse a fond dessus... Par contre, je me suis inspirer de ta fonction pour trouver le mot dans le dictionnaire pour inventer une fonction qui permet de choisir a quelle ligne se positionner dans un fichier... Pour les interesser, voila le code... Code : C #include <stdio.h>
#include <stdlib.h> long atteindreLigne(long ligneAAtteindre,FILE* pointeurSurFichier) { rewind(pointeurSurFichier); long positionLigne=1; int caractereLu=0; while(positionLigne!=ligneAAtteindre) { caractereLu=fgetc(pointeurSurFichier); if (caractereLu == '\n') { positionLigne++; } } return 0; } Je sais pas si on oeut faire plus simple mais bon... EDIT : j'ai rajouter le rewind au début de la fonction... |
rz0
|
# Posté le 04/03/2006 à 10:56:14 - Ce membre n'a pas mis de note |
meuh![]() Groupe : Membres |
Pas vraiment plus simple non mais tu as oublié de rewind au début sinon ça va ajouter les lignes (ou alors faut renommer ta fonction :). Pis sinon tu ne gères pas les conditons eof.
Voilà plusieurs implémentations possibles, de la plus simple à la plus sophistiquée (il n'y a pas de gestion des erreurs sur la première version) : Le truc c'est que dans ptet 99% des cas, on sait que si getc retourne EOF cela voudra dire "fin de fichier" (il se peut que cela soit faux pour une raison "historique" bien qu'à ma connaissance, aucune implémentation ne fasse ça). Dans ce cas là, on peut simplifier les fonctions (les versions bis). Code : C #include <stdio.h>
int p_fskip(FILE *, long); int p_fskips1(FILE *fp, long n) { while (n-- > 0) while (!feof(fp) && !ferror(fp) && getc(fp) != '\n') continue; return (0); } int p_fskip2(FILE *fp, long n) { int c; c = 0; while (c != EOF && n-- > 0) do c = getc(fp); while ((c != EOF || !feof(fp) && !ferror(fp)) && c != '\n'); return (c == '\n' || feof(fp) ? 0 : -1); } int p_fskip2bis(FILE *fp, long n) { int c; c = 0; while (c != EOF && n-- > 0) do c = getc(fp); while (c != EOF && c != '\n'); return (c == '\n' || feof(fp) ? 0 : -1); } int p_fskip3(FILE *fp, long n) { int c; while (n-- > 0) do { c = getc(fp); if (c == EOF) if (feof(fp)) goto ex; else if (ferror(fp)) goto err; } while (c != '\n'); ex: return (0); err: return (-1); } int p_fskip4(FILE *fp, long n) { int c; while (n-- > 0) do { c = getc(fp); if (c == EOF && (feof(fp) || ferror(fp))) goto ex; } while (c != '\n'); ex: return (c == '\n' || feof(fp) ? 0 : -1); } int p_fskip4bis(FILE *fp, long n) { int c; while (n-- > 0) do { c = getc(fp); if (c == EOF) goto ex; } while (c != '\n'); ex: return (c == '\n' || feof(fp) ? 0 : -1); } int p_fskip4bisbis(FILE *fp, long n) { int c; while (n-- > 0) do { c = getc(fp); if (c == EOF) return (feof(fp) ? 0 : -1); } while (c != '\n'); return (0); } Enjoy the C... (Ca devrait marcher, pas tout testé...) Notez que tout n'est pas supporté, on pourrait facilement rajouter une interface à la manière de fseek avec un paramètre whence et gérer les offsets négatifs.
|
Meothed
|
# Posté le 04/03/2006 à 11:21:56 - Ce membre a mis la note : 19 |
|
Groupe : Membres |
C'est vrai que le rewind "oublié" m'a posé quelques problemes... Je me demandais pourquoi lorsque je faisais une boucle pour lire et afficher la ligne 1 pui la ligne 2...etc... cela m'affichait les lignes 1,2,4,7,11,...
Enfin voila le défaut corriger...
Autrement je ne penses pas avoir assé de niveau pour comprendre tout le code de ta fonction donc pour l'instant je me contenterais de la mienne^^ Je vais peut etre rajouter l'affichage d'un message d'erreur si on essaye d'atteindre une ligne qui n'existe pas lorsque l'on dépasse EOF...
Autrement la j'essaye d'inventer une fonction qui classe les joueurs en fonction de leur score à un jeu... J'ai fait un tableau de struct comprenant le nom du joueur et son score mais je n'arrive pas a classer tout ca...
|
Lanier
|
# Posté le 05/03/2006 à 18:25:50 - Ce membre a mis la note : 18 |
![]() Groupe : Membres |
Yop!
Un petit commentaire pour signaler une minuscule erreur. Dans la solution, lors de l'explication sur la fonction piocherMot, il est mit Citation : M@teo21 ...Cette fonction va prendre un paramètre : un pointeur sur la zone en mémoire où elle pourra écrire le mot...
Cependant, dans le code il n'y a pas de paramètres à la fonction: Code : C char* piocherMot()
{ FILE* dico = NULL; // Le pointeur de fichier qui va contenir notre fichier long nombreMots = 0` numMotChoisi = 0` i = 0; int caractereLu = 0; Sinon que dire à part que ce TP fut très instructif est vachement amusant ! 18/20
Lanier |
M@teo21
|
# Posté le 07/03/2006 à 13:31:27 - Ce membre n'a pas mis de note |
Doh ! Nuts. Mmh, donuts !![]() ![]() |
Merci
Ce qui se conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément. Nicolas Boileau (je suis fan) Suivez l'aventure du SdZ et de Simple IT sur notre blog ! |
jolrael
|
# Posté le 08/03/2006 à 13:17:44 - Ce membre a mis la note : 19 |
|
Groupe : Membres |
Bien, je met 19, c'etais pas si facile...
par contre sous vc++, l'instruction Code : C++ lettreTrouvee = malloc(tailleMot * sizeof(int)); posait probleme`
j'ai du mettre un cast explicite afin q'elle veuille bien marcher: Code : C++ lettreTrouvee = (int*) malloc(tailleMot * sizeof(int));
|
M@teo21
|
# Posté le 08/03/2006 à 20:02:58 - Ce membre n'a pas mis de note |
Doh ! Nuts. Mmh, donuts !![]() ![]() |
C'est parce que visual compile en C++ par défaut.
Pour qu'il compile en C (et donc que tu n'aies pas besoin de faire un cast), il faut modifier les options du projet. Plus d'info dans ce message : http://www.siteduzero.com/forum-83-24184-187114-visual-c-2005-express-mais-ou-le-c.html#r187114 Ce qui se conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément. Nicolas Boileau (je suis fan) Suivez l'aventure du SdZ et de Simple IT sur notre blog ! |
CrowkaiT
|
# Posté le 11/03/2006 à 03:44:43 - Ce membre a mis la note : 19 |
Sakila the dolphin![]() Groupe : Membres |
Pour vider le buffer ça ne serait pas plus simple d'utiliser fflush(stdin) ?
Sinon vraiment sympa ce TP je me suis bien amusé à le faire
Nouveau CMS PHP: PHPBoost, créez votre site complet en quelques clics... |
BjO
|
# Posté le 11/03/2006 à 17:50:49 - Ce membre a mis la note : 18 |
TuPerdsTaViiie,ALaaaGagner!!![]() Groupe : Membres |
Aller 18 pasque l'exe a telecharger ne marche pas chez moi, dès que j'ai fini la parti (gagner ou perdu) le programme s'arrete directement, j'ai essayer de modifier le code source en mettant un petie system("PAUSE"); mais j'arrive pas a compiler (si vous pouvez m'aider...)
|
lost-in-the-shell
|
# Posté le 12/03/2006 à 21:36:38 - Ce membre a mis la note : 18 |
Arf![]() Groupe : Membres |
Tu dis que deux scanf() de suite sont à déconseiller, et tu donnes une méthode pour parer à ça, mais le fflush(stdin) n'est-il pas assez efficace ?
|
Felor
|
# Posté le 13/03/2006 à 13:26:08 - Ce membre a mis la note : 19 |
|
Ceci est un message inutile. Groupe : Membres |
C'est nul.....
19/20 (La perfection n'existe pas )
Ok ok >>>>>>>>>>>>>>>>>>>> [] [SDL?]
<-- Owned by ; |
M@teo21
|
# Posté le 16/03/2006 à 19:13:30 - Ce membre n'a pas mis de note |
Doh ! Nuts. Mmh, donuts !![]() ![]() |
Non fflush(stdin) est une très mauvaise habitude encore enseignée de nos jours (étonnant d'ailleurs).
On ne peut pas se permettre de l'utiliser car le comportement est indéfini (ça peut faire du caca selon les cas). A éviter à tout prix, c'est pour cela que je n'en ai pas parlé dans le TP Ce qui se conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément. Nicolas Boileau (je suis fan) Suivez l'aventure du SdZ et de Simple IT sur notre blog ! |
Steven
|
# Posté le 17/03/2006 à 10:16:15 - Ce membre n'a pas mis de note |
Oh vieux.![]() Groupe : Membres |
Super, claire et très astucieux, vraimebt BRAVO
Juste une chose c'est au niveau de la mise en page du TP, c'est pas bien méchant, mais à un moment tu as afficher un code C alors que c'était un code console (dans le début du TP, même le message en code C est Mot secret : E*E*E** alors qu'il devrait être en code console. Voilà c'est pas une véritable erreur mais je pense que c'est bien de le signaler
|
Fedia
|
# Posté le 18/03/2006 à 13:41:50 - Ce membre n'a pas mis de note |
|
Groupe : Membres |
Super TP, J'ai adoré (et galéré mais sinon, ca ne serait pas drole).
En revanche, je n'ai pas compris un passage dans les consignes : "cette fois vous stockerez tous les mots un à un dans un tableau qui aura une taille correspondant exactement au nombre de mots dans le dictionnaire" On ne stoque pas tous les mots du dictionnaire, simplement le mot pioché, non ??? |
Blade-974
|
# Posté le 19/03/2006 à 11:50:10 - Ce membre a mis la note : 20 |
|
J'adore les sushis Groupe : Membres |
Tres bien le TP. Au début, j'avais un peu la flemme de faire le TP, mais c'est juste parce que je savais pas par ou commencer :/. La 1ere partie j'y ai mis deux heures, et la seconde jlai pas encore faite, jai pas eu le tps ! lol. Voila, jmets 20!!
PS : Vivement SDL!! God bless Feisty Fawn |
Escalquinou
|
# Posté le 20/03/2006 à 06:26:42 - Ce membre n'a pas mis de note |
|
Groupe : Membres |
Bonjour a tous
TP super sympa, j'ai apprecie mais j'ai une petite question. Tu deconseilles d'utiliser le scanf et effectivement ca ne marche pas avec un %c mais si on utilise %s ca fonctionne. Est ce que cette technique est bonne, ou risquee ? Est ce une coup de chance ? De meme pour parcourir le fichier, tu utilises la fonction getc pour detecter le nombre de \n et donc trouver le nombre de mots mais ne serait ce pas plus facile avec la fonction fscanf qui va automatiquement lire le mot entier et passer a la ligne apres (de plus il n'est pas utile d'enlever le \n apres) ? Je pose cette question car dans mon programe cela fonctionne mais peut etre que c'est risque ou qu'il vaut mieux eviter. Dans ce TP, il est conseille de poster son code afin d'avoir des remarques des autres Zero ou "non Zero" donc je joins mon code afin d'avoir peut etre quelques remarques qui pourront me faire progresser. Merci d'avance et desole pour les accents, clavier qwerty ! Et longue vie a ce fabuleux site Code : C // pendu.cpp : Defines the entry point for the console application.
// #include <stdlib.h> #include <stdio.h> #include <string.h> #include <time.h> #include "stdafx.h" #include "pendu.h" void affichageMot(char motSecret[],char lettreTrouve[]); void affichagePendu(int coupRestant); int testLettre(char motSecret[],char lettrePropose); int lettreRestante(char motSecret[],char lettreTrouve[]); char* genererMot(char motSecret[] ); int main(int argc, char* argv[]) { int coupRestant=10; int recherche=0; char lettrePropose; char motSecret[50]="k"; char lettreTrouve[50] = ""; int nbreLettreRestante=0; genererMot(motSecret); do { affichagePendu(coupRestant); affichageMot(motSecret,lettreTrouve); printf("Quelle lettre proposez vous ? "); scanf("%s",&lettrePropose); lettrePropose=toupper(lettrePropose); recherche=testLettre(motSecret,lettrePropose); if (recherche==1) { sprintf(lettreTrouve,"%s%c",lettreTrouve,lettrePropose); printf("\nVous avez trouve une lettre !!!\n\n____________________________________\n\n"); } else { coupRestant--; printf("\nDomage, cette lettre n'est pas dans le mot !!!\n\n____________________________________\n\n"); } nbreLettreRestante=lettreRestante(motSecret,lettreTrouve); if (coupRestant==0) { affichagePendu(coupRestant); printf("\n!!!!!!! P E R D U !!!!!!!!!!!!\n\n\n"); } if (nbreLettreRestante==0) { printf("\nC'EST GAGNE, LE MOT ETAIT BIEN : %s\n\n\n",motSecret); } }while (nbreLettreRestante!=0 && coupRestant!=0 ); return 0; } char* genererMot(char motSecret[] ) { char motGenere[50]=""; int i=0; int nbreMot=0; int numMotGenere=0; FILE* fichierMot=NULL; fichierMot=fopen("mots.txt","r"); if (fichierMot != NULL) { while (!feof(fichierMot)) { nbreMot++; fscanf(fichierMot,"%s"); } rewind(fichierMot); srand(time(NULL)); do { numMotGenere=(rand() % nbreMot); }while(numMotGenere==0); printf("\n%d\n",numMotGenere); for (i=0;i<numMotGenere;i++) { fscanf(fichierMot,"%s",motGenere); } strcpy(motSecret,motGenere); } else { // On affiche un message d'erreur si on veut printf("Impossible d'ouvrir le fichier mot.txt"); } fclose(fichierMot); return 0; } int lettreRestante(char motSecret[],char lettreTrouve[]) { int nbreLettreRestante=0; char* resultatRecherche=NULL; int j=0; while (motSecret[j]!='\0') { resultatRecherche=strchr(lettreTrouve,motSecret[j]); if (resultatRecherche!=NULL) { } else { nbreLettreRestante++; } j++; } return nbreLettreRestante; } int testLettre(char motSecret[],char lettrePropose) { char* resultatRecherche=NULL; resultatRecherche=strchr(motSecret,lettrePropose); if (resultatRecherche!=NULL) { return 1; } else { return 0; } } void affichageMot(char motSecret[],char lettreTrouve[]) { char* resultatRecherche=NULL; int j=0; printf("\nLe mot a trouve est : "); while (motSecret[j]!='\0') { resultatRecherche=strchr(lettreTrouve,motSecret[j]); if (resultatRecherche!=NULL) { printf("%c",motSecret[j]); } else { printf("*"); } j++; } printf("\n"); } void affichagePendu(int coupRestant) { if (coupRestant == 10) { printf("\nPlus que %d chances !\n",coupRestant); printf("\n O\n /|\\\n /'\\\n "); } else if (coupRestant == 9) { printf("\nPlus que %d chances !\n",coupRestant); printf("\n O\n /|\\\n /'\\ #####\n "); } else if (coupRestant == 8) { printf("\nPlus que %d chances !\n",coupRestant); printf(" \n \n O\n /|\\\n /'\\\n ##### \n"); } else if (coupRestant == 7) { printf("\nPlus que %d chances !\n",coupRestant); printf(" \n \n O\n /|\\\n /'\\\n_|_ ##### \n"); } else if (coupRestant == 6) { printf("\nPlus que %d chances !\n",coupRestant); printf(" \n \n O\n | /|\\\n | /'\\\n_|_ ##### \n"); } else if (coupRestant == 5) { printf("\nPlus que %d chances !\n",coupRestant); printf(" \n | \n | O\n | /|\\\n | /'\\\n_|_ ##### \n"); } else if (coupRestant == 4) { printf("\nPlus que %d chances !\n",coupRestant); printf(" ____\n | \n | O\n | /|\\\n | /'\\\n_|_ ##### \n"); } else if (coupRestant == 3) { printf("\nPlus que %d chances !\n",coupRestant); printf(" ________\n | \n | O\n | /|\\\n | /'\\\n_|_ ##### \n"); } else if (coupRestant == 2) { printf("\nPlus que %d chances !\n",coupRestant); printf(" ________\n |/ \n | O\n | /|\\\n | /'\\\n_|_ ##### \n"); } else if (coupRestant == 1) { printf("\nPlus que %d chances !\n",coupRestant); printf(" ________\n |/ |\n | O\n | /|\\\n | /'\\\n_|_ ##### \n"); } else if (coupRestant == 0) { printf(" ________\n |/ |\n | O\n | /|\\\n | /'\\\n_|_ \n"); } } |
M@teo21
|
# Posté le 05/04/2006 à 11:03:42 - Ce membre n'a pas mis de note |
Doh ! Nuts. Mmh, donuts !![]() ![]() |
Le %s est pas adapté, et on peut dire que c un coup de chance car tu débordes très probablement en mémoire. A éviter absolument
Ce qui se conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément. Nicolas Boileau (je suis fan) Suivez l'aventure du SdZ et de Simple IT sur notre blog ! |
Bogoris
|
# Posté le 02/05/2006 à 23:23:53 - Ce membre n'a pas mis de note |
Exit light ! Enter night !![]() Groupe : Membres |
Citation : M@teo21
Que fait dans un cas comme ça ? Sinon moi j'ai réussi à faire un programme en une après-midi... c'est sur le dictionnaire de mot que j'ai le plus galéré... pas mal à cause du dernier caractère "\n" (moi j'ai récupéré les mots avec un fgets)... j'ai résolu le problème d'une manière un peu tordu : j'ai fait une allocation dynamique en prenant le même espace en mémoire qu'avec ma chaîne "brute" (strlen(premiereVariableDeChaine) en quelque sorte) - 1 char, et j'ai copié chaque caractère dans mon autre tableau, sauf le dernier... mais c'est vrai que la technique de remplacer le \n par un \0 est beaucoup mieux... vu que de toute menière il faut un \0 dans chque chaîne de caractère... ![]() Mes projets
Mes tutos
Autres
|
Freeman9999
|
# Posté le 31/05/2006 à 14:08:51 - Ce membre n'a pas mis de note |
|
Groupe : Membres |
Bonjour, j'ai un problème avec le TP :
J'avais donc decidé que pour afficher les mot mystere avec les "*", j'utiliserais une boucle while. voici mon code : Code : C #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> char scand(); int main(int argc, char *argv[]) { char motMystere[20] = "PAPIER"; char lettreEntree = '0'; long compteur = 10; long i = 0; long a = 0; long test = 0; char caractereActuel = '0'; char caractereActuelBis = '0'; printf("Ceci est un pendu, le but du jeu est simple, je tire un mot au hazard, et vous, vous devez le trouvez, lettre par lettre, mais ATTENTION, vous n'avez le droit qu'a un certain nombre d'erreurs ;)\n\n\n\n"); printf("A vous de jouer !\n\n\n\n"); printf("Il vous reste %ld coups a jouer.\n", compteur); printf("Quel est le mot secret ? "); i = 0; while(caractereActuel != '\0') { caractereActuel = motMystere[i]; if(a = i + 1, test = 1, caractereActuel != '\0') { printf("%c"); } else if (caractereActuel != '\0') { printf("*"); } i++; } printf("\n"); printf("Proposez une lettre : "); lettreEntree = scand(); i = 0; a = 0; test = 0; while (caractereActuelBis != '\0') { caractereActuelBis = motMystere[i]; i++; if(caractereActuelBis = lettreEntree) { a = i + 1; test = 1; } } printf("\n\n\n"); system("PAUSE"); return 0; } char scand() { char caractere = 0; caractere = getchar(); // On lit le premier caractère caractere = toupper(caractere); // On met la lettre en majuscule si elle ne l'est pas déjà // On lit les autres caractères mémorisés un à un jusqu'à l'\n (pour les effacer) while (getchar() != '\n') ; return caractere; // On retourne le premier caractère qu'on a lu } le code est loin d'être fini et il reste des petit problème à regler, mais mon plus gros problème est celui-ci quand je compile pui execute le programme voia ce qui se passe : Code : Console Ceci est un pendu, le but du jeu est simple, je tire un mot au hazard, et vous, vous devez le trouvez, lettre par lettre, mais ATTENTION, vous n'avez le droit qu'a un certain nombre d'erreurs ;) A vous de jouer ! Il vous reste 10 coups a jouer . le mot mystere est : 000000 proposez une lettre : 2 problème se posent, comme vous le voyez au lieu de "*" le codde afficher des 0, ( car j'ai initialiser mais chaine avec zero ), quand on entre une lettre le code plante ... Merci de m'aider
|
GuardedDragon
|
# Posté le 12/07/2006 à 00:20:45 - Ce membre a mis la note : 15 |
|
Longue vie à Zozor ! Groupe : Membres |
Hmm... rz0 ?
Je bavais déjà en essayant de faire ce TP et tu nous arrives avec ça. Voilà, j'ai une question sur ce que tu as dit : Euh... hein ?
C'est moi qui a pris du retard ou c'est normal que je comprenne pas un mot de ce qu'il a raconté ?
Sinon, bon sujet, bien expliqué. Comme à ton habitude M@teo. |
Webanix
|
# Posté le 27/07/2006 à 02:32:53 - Ce membre a mis la note : 18 |
|
Groupe : Membres |
Bon TP, il y a juste un truc que j'arrive pas à encaisser , c'est que Mateo tu nous a dis que les pointeurs étaient ultra importants et là dans ton programme tu utilises en tout et pour tout 2 pointeurs, et encore pour le dico...
Ca m'étonne mais bon sinon le TP est très bien... |
Bilou64
|
# Posté le 28/07/2006 à 23:44:35 - Ce membre a mis la note : 18 |
|
Mais euh, marche pas ... Groupe : Membres |
J'ai un problème : voici ce code faisant partie de la correction du TP
Code : C /* Le curseur du fichier est positionné au bon endroit.
On n'a plus qu'à faire un fgets qui lira la ligne */ fgets(motPioche` 100` dico); // On vire l'\n à la fin motPioche[strlen(motPioche) - 1] = '\0'; Par exemple, si on prend le mot MARRON, qui fait 6 lettres (si si c'est vrai ^^), strlen(motPioche) vaudra donc 6. A ceci, on retire 1, on va donc avoir motPioche[5], qui va donc avoir comme valeur '\0'. Or motPioche[5] correspond à la lettre O dans le cas de MARRON ! Bref, on va remplacer le O par '\0'. Serait-ce une erreur de notre merveilleux wemaster ou bien moi qui ai lu un chapitre trop vite ?
A votre bon coeur, Bilou. Un nain reste un nain |
jonhwoods
|
# Posté le 04/08/2006 à 16:09:48 - Ce membre n'a pas mis de note |
|
Groupe : Membres |
Boujours à vous, je vien de commencer les tutos de C++ (meme si ya eu que du C) et après avoir bien étudier le code de notre fabuleux prof j'ai essayé de faire mon jeu. Voici ce que sa donne.
Code : C #include <stdio.h>
#include <stdlib.h> #include <ctype.h> int gagne(int lettreTrouvee[]); int rechercheLettre(char lettreChoisie, int lettreTrouvee[], char motMystere[]); char lireLettre(); int main() { int lettreTrouvee[30] = {0}; char motMystere[30] = "MARRON"; long i = 0; long vies = 10; char lettreChoisie; printf("Bienvenu dans le pendu!\n\n"); while (vies > 0 && !gagne(lettreTrouvee)) { printf("Il vous reste %ld vies.\n", vies); printf("Le mot mystere est:"); for (i = 0; i < 6; i++) { if (lettreTrouvee[i]) printf("%c", motMystere[i]); else printf("*"); } printf("\nChoisisez une lettre:"); lettreChoisie = lireLettre(); if (!rechercheLettre(lettreChoisie, lettreTrouvee, motMystere)) vies--; } if (gagne(lettreTrouvee)) printf("Bravo! Le mot mystere etait bien %s", motMystere); else printf("N00B! Tu vien de te faire pwner par le mot %s", motMystere); return 0; } char lireLettre() { char lettreChoisie; lettreChoisie = getchar(); lettreChoisie = toupper(lettreChoisie); while (getchar() != '\n'); return lettreChoisie; } int rechercheLettre(char lettreChoisie, int lettreTrouvee[], char motMystere[]) { long i = 0; int result = 0; for (i = 0; motMystere[i] != '\0'; i++) { if (lettreChoisie == motMystere[i]) { result = 1; lettreTrouvee[i] = 1; } } return result; } int gagne(int lettreTrouvee[]) { long i = 0; int result = 1; for (i = 0 ; i < 6; i++) { if (!lettreTrouvee[i]) result = 1; } return result; } Le code compile bien. Je lance et POP! un simple flash . Comment c'est possible? Il devrait y avoir au moins un appuyer sur une touche pour continuer à la fin non? (J'utilise Code::Blocks)
Merci d'avance pour vos conseils Edit: j'ai rajouté un pause à la fin. La fenetre s'ouvre et affiche seulement Code : Console Appuyez sur une touche pour continuer...
|
rockforever
|
# Posté le 17/08/2006 à 18:34:35 - Ce membre a mis la note : 20 |
![]() Groupe : Membres |
franchement merci, je commence juste la programmation et j'arrive maintenant a faire des chose que je n'aurai pas imaginé.
vraiment merci car en plus c'est super bien expliqué !
|
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
RSS tutoriels |
RSS news
Édité par Simple IT SARL :
Nous contacter
| Notre blog | Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
148 Zéros connectés |
9 requêtes |
0.0525s (0.0404s)
