begin process at 2012 05 29 12:51:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

motus en C


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

motus en C

samedi 19 novembre 2011 à 14:15:59 | motus en C

amine124

Bonjour,

Je veux créer un petit jeu "motus" qui lit un mot et la comparer par le mot d'or (à trouver); si le joueur trouve qqes lettres, on les affiche dans leurs indices et les restes seront des " -" (tirets); on lui donne que 10 essaies....
Mon pb est lorsque le joueur tape un/des caractère corrects, le programme réserve ces caractères au prochain essai; d'une autre part, à chaque affichage, le mot affiché est tjrs suivi par une petite émoticône que je sais pas son source.
Voilà mon code, veuillez me dire où est le pb, et merci d'avance:

#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#define Max 10

int main()
{
char mot[Max]; // mot saisie par l'utilisateur
char texte[Max]; // mot d'or (à trouver)
int taille_mot; // la taille du mot d'or
int compt=0; // compteur des essaies
int compt2; // variable pour decider si le joueur a trouvé le mot d'or ou non
char ch[Max]; // la chaine à afficher
int ii=0; // compteur de la boucle for pour compter les nombres

strcpy(texte,"facteur"); // "facteur" est le mot à trouver

taille_mot=strlen(texte); // calculer la taille du mot d'or

printf("Attention! Vous chercher un mot de %d caractere.\n",taille_mot);

while(compt<10)
{
compt2=0;
strcpy(ch,""); // initialisation de la chaine à afficher

printf("\n\n Essaie Num %d: Donner le mot d'Or: ",(compt+1));
scanf("%s",&mot);
printf("\n");

for(ii=0;ii<taille_mot;ii++)
{
if(mot[ii]!="\0" || mot[ii]!="")
{
if(mot[ii]==texte[ii])
{
ch[ii]=mot[ii];
compt2++;
}
else
ch[ii]='-';
}
else
{ ch[ii]=""; }
}

printf(" ++++++ %s ++++++ /// %d caractere justes",ch,compt2);

if(compt2==taille_mot)
{
printf("\n\n***** Felicitation! Vous avez trouve le mot d'Or avec succes. \" %s \" ***** \n\n",texte);
break;
}
else
{
strcpy(ch,"");
}

compt++;
}

if(compt==10)
{ printf("\n\n ******** Gameover! Vous avez termine le nombre d'essaies possible. ******** \n\n"); }

system("pause");
return EXIT_SUCCESS;
}
lundi 21 novembre 2011 à 10:31:05 | Re : motus en C

buno

Administrateur CodeS-SourceS
Hello,
ça compile ton truc?
Code C/C++ :
mot[ii]!="\0"

-> tu compare un caractère avec une chaine...

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
lundi 21 novembre 2011 à 11:00:55 | Re : motus en C

buno

Administrateur CodeS-SourceS
De plus, je pense que tu as une confusion entre le nombre d'essai et la longueur du mot à trouver: ce sont 2 variables différentes...
Voici un code corrigé, avec des commentaires explicatifs. N'hésites pas à me demander ce que tu ne comprends pas.

Code C/C++ :
#include <stdio.h> 
#include <stdlib.h>
#include <string.h>

#define ESSAI_MAX 3 

int main() 
{ 
  char* mot; // mot saisie par l'utilisateur 
  char* texte = "facteur"; // mot d'or (à trouver) 
  int taille_mot; // la taille du mot d'or 
  int compt=0; // compteur des essaies 
  int compt2; // variable pour decider si le joueur a trouvé le mot d'or ou non 
  char* ch; // la chaine à afficher 
  int i=0; // compteur de la boucle for pour compter les nombres 

  taille_mot=strlen(texte); // calculer la taille du mot d'or 
  mot = (char*)malloc(taille_mot*sizeof(char)+1); // allocation de la chaine contenant le mot saisi (+1 pour le caractère de fin de chaine)

  printf("Attention! Vous chercher un mot de %d caracteres.\n",taille_mot); 

  while(compt<ESSAI_MAX) 
  { 
    compt2=0;
    ch = (char*)malloc(taille_mot*sizeof(char)+1); //init de la chaine à afficher (+1 pour le caractère de fin de chaine)

    printf("\n\n Essaie Num %d: Donner le mot d'Or: ",(compt+1)); 
    scanf("%s",mot); 
    printf("\n"); 

    for(i=0;i<taille_mot;i++) 
    { 
      if(mot[i]==texte[i]) 
      { 
        ch[i]=mot[i]; 
        compt2++; 
      } 
      else 
        ch[i]='-'; 
    }
    ch[taille_mot]='\0';	// attention à bien terminer la chaine!

    printf("++++ %s ++++ /// %d caracteres justes",ch,compt2); 

    if(compt2==taille_mot) 
    { 
      printf("\n\n*** Felicitations! Vous avez trouve le mot d'Or avec succes. \" %s \" ***",texte); 
      break; 
    } 

    compt++; 
    free(ch);
  } 

  if(compt==ESSAI_MAX) 
  {
    printf("\n\n*** Gameover! Vous avez termine le nombre d'essais possibles. ***");
  } 

  // désallocation des chaines
  free(mot);

  system("pause"); 
  return 0; 
}


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...


Cette discussion est classée dans : taille, int, mot, printf, ii


Répondre à ce message

Sujets en rapport avec ce message

Hachage fermé problème de lecture [ par mcflysupersonic ] Bonjour je suis nouveau sur le forum est ceci est ma première question donc j'espère que je ne me suis pas trompé d'endroit pour poster.Voilà j'ai un Demande d'explication a propos d'un code. [ par Strick9 ] Salut à tous, j'ai obtenu grâce à se merveilleux site ce code sources pour cet énoncés:un programme permettant de donner toute les combinaison suite a langage c [ par amoula00 ] j'ai pas peut éxicuter ce programme en langage c  qu'el qu'un peux m'aidée #include #include  char Chaine[33+1]int; int taille,i,mot;void main(){ prin Besoin d'aide-Interface Graphique [ par nissan1 ] Bonjour, s'il vous plait je suis debutant en programmation et j'ai fait un programme en C sous l'IDE codeblocks, qui utilise les elements d'une matri mot se terminant par [ par naltap312 ] Bonjour, tout novice et après moultes rélfexions, apparement pas assez, je n'arrive pas à coder une fonction me retournant si oui ou non un mot se te besoin d'aide dans programme en c [ par houda986 ] salut; je suis un débutante en programmation et j'ai besoin d'aide pour la résolution d'un programme en C,c'est un programme de tri par base ... j'ai flashsort [ par imenou31 ] salut, j'ai ce programme de flashsort en C, algorithme de tri, quand je l'exécute en devc++ il m'affiche une boite de dialogue "le programme a cessé d exercice d'algo [ par Mjblue ] int chainehsrd( int i; int N; char Mot=''; char Mot[255]; int E=97; char L=(char)E) { for (i=0; i< char Mot[255]-1; i++) calculs tableau [ par 3463 ] Salut à tous !! J'ai besoin de votre aide [^^happy13] Voici mon programme : # include # include # include # include # include # include # incl aide problem de compilation [ par pboscaiolo ] Bonjour j'ai un code avec le code suivant. quand je le compile ca plante, je crois qu'il s'agit d'un probleme d'allocation de memoire. le fichier duq


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales