Amélioration de mon jeu

Fermé
Dingamnodji Christian - Modifié par KX le 26/08/2016 à 07:39
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 27 août 2016 à 12:55
Bonjour,
j'ai créé un programme de jeu questionnaires, je souhaite que si la reponse est juste l'ordinateur affiche vrai mais je n'y arrive pas. voici le programme:
#include <stdio.h>
void saute_ligne(long n);
main()
{
    int AnneeNaiss, x,Vrai;
    char nom[75];
    printf("   UNE QUESTION, UNE REPONSE!!!");
    saute_ligne(2);
    printf("   Donnez votre annee de naissance : ");
    scanf("%d",&AnneeNaiss);
    saute_ligne(1);
    printf("    Votre age est %d ans",2016-AnneeNaiss);
    saute_ligne(2);
    x=2016-AnneeNaiss;
    saute_ligne(1);
    if(x<45)
    {
    printf ("     Inserez un prenom pour continuez ce jeu : ");
    scanf ("%s",&nom);
    saute_ligne(1);
    printf("     Bienvenue %s",&nom);
    saute_ligne(2);
    printf("     Comment allez vous? : ");
    scanf ("%s",&nom);
    saute_ligne(1);
    printf ("    Vs serez soumis a des questionnaires pour gagner 500.000 fcfa ");
    saute_ligne(2);
    printf ("    Etes vous pret ?  (Tapez 1 pour pret ou 0 pour arreter le jeu) : ");
    scanf("%d",&x);
    saute_ligne(1);
    printf ("    Connaissez vous bien le Tchad?  (Tapez 1 pour oui ou 0 pour arreter le jeu) : ");
    scanf("%d",&x);
    saute_ligne(2);
        if(x!=0)
        {
          printf ("   Question 1: Quelle est la superficie du Tchad ?: ");
          scanf ("%s",&nom);
          if(nom=="1.284.000km2")
          printf("vrai");
          saute_ligne(1);
        }
            else
            {
                printf("faux");
                saute_ligne(1);
            }
            printf("   Question 2: Comment appelle ton l'hymne du Tchad?: ");
            scanf ("%s",&nom);
             saute_ligne(1);
                printf("   Question 3: Quel rang occupe le Tchad des pays les plus vastes d'Afrique: ");
            scanf ("%s",&nom);
            saute_ligne(1);
            printf ("   Question 4: Qui est le Directeur General de MKGT CONSULT?:");
            scanf ("%s",&nom);
            saute_ligne(1);
            printf ("   Question 5: Quels sont les pays dont le Tchad partage des frontieres communes ?:");
            scanf ("%s",&nom);
            saute_ligne(1);
            printf ("   Question 6: En quelle date le Tchad a t-il accede a l'independance?:");
            scanf ("%s",&nom);
            saute_ligne(2);
            printf ("  Voici en fin la 7e et derniere question qui fera de vous le fameux gagnant ou perdant de 500.000 fcfa ");
            saute_ligne(2);
            printf ("                  Top c'est parti!!! ");
            saute_ligne(2);
            printf ("   Question 7: Quelle est la situation geographie du Tchad?:");
            scanf ("%s",&nom);
            saute_ligne(2);
            printf("     JEU TERMINE");
            saute_ligne(2);
            printf("       Desole vous avez perdu");
            printf(" 500.000 fcfa!!!");
            saute_ligne(2);
            printf("       Mais vous savez bien que c'est pas la fin du monde!!!");
            saute_ligne(2);
            printf("       Programme realise par DINGAMONDJI CHRISTIAN  ");
            saute_ligne(1);
        }

        else
        {

           printf("   Desole votre age ne correspond pas aux criteres pour ce jeu");
           saute_ligne(2);
        }
        return 0;
}
void saute_ligne(long n)
{
        int i;
        for(i=1; i<=n; i++)
            printf("\n");

}
A voir également:

1 réponse

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
27 août 2016 à 12:55
Quelques remarques:
  • utilise des tableaux de structures et une boucle (à adapter bien entendu)
  • la comparaison des chaînes s'effectue avec <ital>strcmp</ital : voir man strcmp.
  • ne sépare pas le code de saute_ligne de sa définition, sauf si tu te crées une bibliothèque ou un module séparé et utilise dans ce cas un fichier d'en-tête <ital>#include</ital séparé.
  • en règle générale structure mieux ton code, utilise des boucles / structures etc



exemple à amélorer:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

void my_flush()
{
  int c;
  while((c = getchar()) != '\n' && c != EOF);
}

void saute_ligne(long n)
{
  int i;
  for(i=1; i<=n; i++)
    printf("\n");
}

#define MAX 25
typedef  struct QA  {
  char* q, *a;
} item;

item questions[] ={ {"Quel est l'âge du capitaine?", "37"},
		    {"Quelle est la surface de la Belgique en km²?",  "30000"},
		    {"Quelle est votr couleur préférée?", "vert...rouge"}
};

int main(int argc, char *argv[] )
{
  int nq = sizeof(questions)/sizeof(item);
  int current;
  char answer[MAX];

  for( current=0; current < nq; current++)
    {
      answer[0] = 0;

      printf("%s\n", questions[current].q );
      saute_ligne(1);

      scanf("%24s", answer);
      my_flush();
      
      if ( 0 == strcmp(answer,  questions[current].a) )
	{
	  printf("Correct!");
	}
      else
	{
	  printf("Incorrect!");
	}
      /*      printf("\n\nnext ITERATION :Your answer %s\n", answer) */
      saute_ligne(1);
    }

return EXIT_SUCCESS;
}


gcc -Wall -o tchad02 tchad02.c
0