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 :

debutant jeu de cartes


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2
    Par défaut debutant jeu de cartes
    Bonjour
    je cherche la technique la plus rapide pour tirer les 52 cartes à la suite d'un jeu de cartes;comme je le dis je débute et j'ai trouvé plusieurs techniques mais 1 peu trop lente à mon gout
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par raiden02
    je cherche la technique la plus rapide pour tirer les 52 cartes à la suite d'un jeu de cartes;comme je le dis je débute et j'ai trouvé plusieurs techniques mais 1 peu trop lente à mon gout
    qsort()

  3. #3
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    qsort()
    le monsieur veux tirer les cartes ... pas les trier. ou alors j'ai mal compris

    j'ai eu a le faire ... et la technique que j'ai utilisé etait assez rustique ... mais fonctionne sans trop de problemes.

    tu fait un tableau de 52 elements, chaque element represente une carte, et la valeur de l'element represente un ID de joueur.

    int jcartes[52] = {0};

    tu tire un nombre aleatoire (voir la FAQ) et tu attribue la carte au joueur auquel tu est en train de distribuer si cette carte n'as pas ete deja distribué.

    aleat = getrandnbr(0,51);
    if(jcartes[aleat] == 0)
    {
    jcartes[aleat] = player[0].id;
    player[0].nbcartes++;
    }

    ensuite, tu continue jusqu'a ce que ton joueur ait le nombre necessaire de cartes... ensuite tu passe au joueur suivant.

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Dark_Ebola
    le monsieur veux tirer les cartes ... pas les trier.
    Papy se fait vieux, faut parler plus fort !

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2
    Par défaut
    Oui c'est ce a quoi j'avais pensé mais le probleme c'est que pour les dernières cartes du tas quand je tire un nombre aleatoirement il y a beaucoup de chances pour que cesoit 1 carte deja tiré et la boucle peut durer longtemps surtout avec un truc pas tres puissant(ce que j'ai bien evidemment) et donc je cherche comment passer outre cette attente

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Tu génères une permutation aléatoire (tu pars d'un tableau et tu échanges chaque élément du tableau avec un des suivants tiré au hasard) et ensuite tu distribues le paquet ainsi consitué. C'est plus un problème d'algo d'ailleurs.

  7. #7
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    Citation Envoyé par raiden02
    Oui c'est ce a quoi j'avais pensé mais le probleme c'est que pour les dernières cartes du tas ....
    c'est plus la peine de continuer a distribuer pour le dernier joueur
    si t'as 4 joueurs, tu distribue pour 3 joueurs, et les 13 cartes restantes vont au 4ieme.

    en utilisant rand proprement (voir la FAQ), j'avais pas plus d'une 100 aines (en moyenne) de tirages supplementaires pour tout distribuer.

    sinon j'aime bien la solution a Medinoc ... c'est presque elegant.

Discussions similaires

  1. [C++] Urgent Développeur pour Jeu de cartes simple
    Par koros21 dans le forum Projets
    Réponses: 6
    Dernier message: 10/09/2006, 13h19
  2. [structure de donnée] jeu de carte
    Par .:dev:. dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 20/05/2006, 15h44
  3. [debutant] jeu avec creation de processus et partage memoire
    Par cbv38 dans le forum Threads & Processus
    Réponses: 1
    Dernier message: 01/12/2005, 17h39
  4. [VB] Recrutement pour un Jeu de cartes WHIST
    Par Vesta dans le forum Projets
    Réponses: 5
    Dernier message: 13/09/2005, 19h43
  5. IA avec un jeu de cartes
    Par Captain_JS dans le forum Intelligence artificielle
    Réponses: 3
    Dernier message: 07/02/2005, 10h07

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