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 :

distribution de cartes


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 8
    Par défaut distribution de cartes
    bonjour, je suis un étudiant en DUT réseaux et télécommunication et j'ai un mini projet à réaliser qui est le jeux de dame de pique en langage C. Je ne suis pas un adepte de ce langage =) et donc je rame légèrement sur ceci. Donc j'aimerai de l'aide afin de réaliser ce mini projet. Tout d'abord, j'ai fait ma SDL pour afficher les carte sur mon tapis mais :

    1- comment faire pour éviter 52 répétition des variable pour les cartes ? faire une boucle serai le mieux je pense !

    2- comment faire pour distribuer les cartes en random ?

    voila ci vous pouvez m'aidez cela serai d'une très grande aide.

    merci d'avance. Cordialement Cyril

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Bonjour et bienvenue,

    Citation Envoyé par cyril85190 Voir le message
    1- comment faire pour éviter 52 répétition des variable pour les cartes ? faire une boucle serai le mieux je pense !
    Oui, une boucle for(;;). Elle fonctionne comme en Java ou un certain nombre d'autres langages (les boucles sont aussi vieilles que l'informatique mais cette syntaxe en particulier est celle du C, à la base).

    Tu peux utiliser un tableau. Exemple : « int a[10] » déclare en mémoire dix variables de type int indexées de 0 à 9. Donc « a[0] », « a[1] », « a[2 », etc. sont autant de variables différentes, comme si tu avais déclaré « a », « b », « c », etc. L'avantage, c'est que l'index au milieu peut être n'importe quelle expression évaluable comme un nombre entier naturel…*y compris une autre variable, tu peux donc écrire par exemple :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        int i = 0;
        int a[10] = { 0 };
     
        for (i=0;i<10;i++) printf ("Valeur de la case numéro %d : %d\n",i,a[i]);

    2- comment faire pour distribuer les cartes en random ?
    Il existe la fonction rand() pour tirer des nombres au hasard. Le mieux étant ensuite de représenter chaque carte par un numéro entre 0 et 51.

  3. #3
    Membre averti Avatar de royal380
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Mai 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprenti Ingénieur

    Informations forums :
    Inscription : Mai 2011
    Messages : 56
    Par défaut
    pour ton random de 52 cartes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <time.h>
    ....
    void main()
    {
    srand((unsigned int) time (0)); // initialisation de la fonction srand
    int numeroCarte;
     
    numeroCarte =  rand() % 52; // Tire des chiffres entre 0 et 51 soit 52 cartes
    }

  4. #4
    Membre éprouvé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juillet 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Juillet 2009
    Messages : 122
    Par défaut
    Le problème de rand pour tirer des cartes, c'est que cette fonction fonctionne comme un tirage "avec remise". Autrement dit, deux appels successifs à rand peuvent retourner le même résultat (et donc la même carte...).

    Pour le jeu de la dame de pique, toutes les cartes doivent être distribuées. Il faudrait plutôt tirer une permutation aléatoire des 52 cartes et les distribuer dans l'ordre permuté. Ce n'est qu'une option parmi d'autres...

  5. #5
    Membre averti Avatar de royal380
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Mai 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprenti Ingénieur

    Informations forums :
    Inscription : Mai 2011
    Messages : 56
    Par défaut
    Ou alors il suffit de mettre à la fin la case du tableau tirer .... et de retirer 1 au rand() à chaque fois .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     void DecalerUneCase(short indice) /* indice = Numero_De_La_Case_A_Mettre_a_La_Fin*/ 
    {
     
       for (i = 1; i < TailleDuTableau ; i++ , indice++)
       {
     
           Tab[indice] = Tab[indice+1]; /* On passe à la valeure Tab[X] du tableau la valeur Tab[X+1]*/
       }
    }
    ET :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void main()
    {
    TirageCarte(i);
    /*{
       numeroCarte = rand() % i ;
    return numeroCarte;
    }*/
     
    DecalerUneCase(X);  
    i--;  
     
    }

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 8
    Par défaut
    ok merci je vais essayé tout cela je vous tien au courant. merci encore de votre aide

Discussions similaires

  1. distribution de carte aléatoire
    Par philoupe dans le forum Débuter
    Réponses: 6
    Dernier message: 20/06/2011, 18h34
  2. Réponses: 0
    Dernier message: 05/02/2008, 11h41
  3. Réponses: 1
    Dernier message: 19/05/2007, 22h30
  4. Programme de distribution de cartes
    Par charleshbo dans le forum C++
    Réponses: 1
    Dernier message: 10/02/2006, 16h43

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