IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Besoin d'une vérification et demande de conseil


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Besoin d'une vérification et demande de conseil
    Bonjour à tous. Alors voilà, j'ai un tp à faire. Je vous explique : il faut écrire un programme permettant de générer une combinaison de nb valeurs comprises entre 0 et 100 tirées aléatoirement (je vous passe les conditions car j'ai réussi à faire cette partie du programme). Ensuite l'utilisateur doit pouvoir saisir une combinaison de nb valeurs (j'ai aussi réussi cette saisie). Ensuite on me demande d'afficher à l'utilisateur s'il a gagné dans l'ordre, dans le désordre ou bien si il a perdu. Je vous montre ce que j'ai fais. Cela marche mais je voudrais savoir si il n'y avait pas une solution plus euh comment dire simple ou plus intuitive. Merci d'avance.

    Alors tabwin c'est le tableau des combinaisons gagnantes, tabgame c'est le tableau ou est stocker la saisie de l'utilisateur et tabordre reçoit les nombres correspondant à ceux joués par le joueur qui figurent aussi dans la combinaison gagnante.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    compteur1=0;
    compteur2=0;   
    k=0;
    	for(i=0; i<nbval; i++)
    	{
    		if(tabwin[i]==tabgame[i])
    		{
    			compteur1=compteur1+1;
    		}
    		for(j=0; j<nbval; j++)
    		{
    			  if(tabgame[j]==tabwin[i])
    			    {
    				 compteur2=compteur2+1;
    				 tabordre[k]=tabwin[i];
    				 k=k+1;
    				}
    		}
    	}

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par oroch Voir le message
    Cela marche mais je voudrais savoir si il n'y avait pas une solution plus euh comment dire simple ou plus intuitive.
    Une méthode toute bete :
    • Vérifier si le jouer a la combinaison dans l'ordre
    • S'il a gagné, on sort
    • Sinon, trier le tableau de la combinaison gagnante et celui du joueur
    • Vérifier si le jouer a la combinaison dans l'ordre
    • S'il a gagné, on sort


    Exemple :
    Combi gagnante : 1 5 3
    Le joueur joue 1 5 3
    Test 1- le joueur a la bonne combi dans l'ordre, on sort

    Combi gagnante : 1 5 3
    Le joueur joue 5 1 3
    Test 1- le joueur n'a pas la bonne combi
    Tri, combi gagnante devient 1 3 5, celle du joueur 1 3 5
    Test 2- le joueur a la combi dans l'ordre : il gagne, on sort.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    oui mais en fait ensuite on doit afficher à l'utilisateur s'il a gagné dans l'ordre ou dans le désordre, ou s'il a perdu. Donc s'il a gagné dans le désordre on doit lui afficher. Si on fais un tri il gagnera toujours dans l'ordre.

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par oroch Voir le message
    oui mais en fait ensuite on doit afficher à l'utilisateur s'il a gagné dans l'ordre ou dans le désordre, ou s'il a perdu. Donc s'il a gagné dans le désordre on doit lui afficher. Si on fais un tri il gagnera toujours dans l'ordre.
    Justement, c'est là l'astuce : on regarde s'il a gagné dans l'ordre, si oui, on lui dit.

    S'IL n'a pas gagné dans l'ordre, on trie les tableaux
    Puis on regarde avec la même fonction que la première fois s'il a gagné, dans ce cas, on lui dit qu'il a a gagné dans le désordre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    int gagne(int tabjoueur[],int tabwin[], int size)
    {
        int i;
        for(i = 0; i < size; ++i) {
            if(tabjoueur[i] != tabwin[i] {
                return 0; /* pas gagné */
            }
        }
        return 1; /* a gagné */
    }
     
    int main(void) {
        /* tirer une combinaison */
     
        /* demander une combinaison au joueur */
     
        if(gagne(tabjoueur, tabwin, size)) {
            printf("gagné dans l'ordre\n");
        } else {
            /* trier les deux tableaux */
     
            if(gagne(tabjoueur, tabwin, size)) {
                printf("gagné dans le desordre\n");
            } else {
                printf("perdu\n");
            } 
        }
        return 0;
    }
    :

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'ai un autre problème... En fait je voudrais permettre à l'utilisateur de rejouer ou de quitter le programme. L'utilisateur n'aura le droit de jouer que 10 fois. Donc si je comprend bien il faut que je fasse une menu. Mais vu que je débute je vois pas très bien comment je pourrais faire. Si dans un do.. while je met un switch avec en case 1 : mon programme et en case 2: quitter le programme c'est bon ? Mais je vois pas où est-ce que je pourrais mettre la condition pour que l'utilisateur ne joue que 10 fois.

  6. #6
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par oroch Voir le message
    Mais je vois pas où est-ce que je pourrais mettre la condition pour que l'utilisateur ne joue que 10 fois.
    Une variable initialisée à 10 et décrémentée à chaque partie jouée doit suffire : tant que la variable est positive, le joueur peut continuer.

Discussions similaires

  1. [débutant] demande de conseils avant une formation
    Par Dia_FR dans le forum ASP.NET
    Réponses: 9
    Dernier message: 30/01/2008, 13h49
  2. Demande de conseils pour me faire une config gamer à 1000€
    Par julien06 dans le forum Ordinateurs
    Réponses: 3
    Dernier message: 20/11/2007, 22h32
  3. Réponses: 8
    Dernier message: 10/10/2007, 09h42
  4. [Excel] Demande de conseils pour remplir une feuile Excel
    Par essembeh dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 10/08/2007, 11h38
  5. [Demande de Conseils][Quitter une entreprise]
    Par ronan99999 dans le forum Licenciement
    Réponses: 3
    Dernier message: 09/01/2006, 21h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo