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 :

UNO en langage C [Non suivi]


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Par défaut UNO en langage C
    Bonjour,
    dans le cadre d'un projet tuteuré, moi et 3 autres étudiants devont réaliser le jeu UNO en langage C.
    Moi j'ai à m'occuper de la distribution des cartes au hasard et de la vérification des cartes jouées.
    Y'aurait t-il quelqu'un qui sache bien utiliser ce langage pour qu'il puisse m'aider et me montrer la marche à suivre ?

  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 enzo_fxx
    Bonjour,
    dans le cadre d'un projet tuteuré, moi et 3 autres étudiants devont réaliser le jeu UNO en langage C.
    Moi j'ai à m'occuper de la distribution des cartes au hasard et de la vérification des cartes jouées.
    Y'aurait t-il quelqu'un qui sache bien utiliser ce langage pour qu'il puisse m'aider et me montrer la marche à suivre ?
    Dans le désordre :
    • Quelles sont les études préalables qui ont été faites ? (Spécifications, conception)
    • Quel est le délai ?
    • Quel est ton niveau en C ?
    • Quelle est l'interface requise (console, TUI, GUI ?)
    • A quoi sert ton tuteur ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Par défaut
    Nous avons étudier les identificateurs, les constantes, les variables, affichage et saisie, structure de controle(séquence,alternative et répétition), tableaux, fonctions, pointeurs, fichiers(accés formatés) et structure.
    Le jeu devra réspécté les règles officielles et fera intervenir 1 joueur contre l'ordinateur qui simulera plusieurs autres joueurs et il doit etre compilable sous turbo c++.
    Le delai est d'environ 2 à 3 semaines.

  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 enzo_fxx
    Nous avons étudier les identificateurs, les constantes, les variables, affichage et saisie, structure de controle(séquence,alternative et répétition), tableaux, fonctions, pointeurs, fichiers(accés formatés) et structure.
    Le jeu devra réspécté les règles officielles et fera intervenir 1 joueur contre l'ordinateur qui simulera plusieurs autres joueurs et il doit etre compilable sous turbo c++.
    Le delai est d'environ 2 à 3 semaines.
    Je repose mes questions :

    * Quelles sont les études préalables qui ont été faites ? (Spécifications, conception)
    OK

    * Quel est le délai ?
    OK

    * Quel est ton niveau en C ?
    Pas de réponse...

    * Quelle est l'interface requise (console, TUI, GUI ?)
    Pas de réponse...

    * A quoi sert ton tuteur ?
    Pas de réponse...

    2 à 3 semaines, ce n'est pas la même chose, mais de toutes façons, c'est très court...

    Pour faire simple, je conseille une interface en mode console tout à fait standard.

    Alors c'est quoi la question exactement ? Tu veux mélanger des cartes ?

    1. créer un tableau ordonné
    2. melanger le éléments. Il y a plein d'algorithmes de 'shuffle' sur le net.

    une méthode simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Soit à mélanger un tableau de N éléments : 
     
    repeter 100 x N fois :
      tirer un indice a entre 0 et N-1
      tirer un indice b différent enre 0 et N-1, différent de a
      inverser les données aux indices a et b.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Par défaut
    Je suis encore un débutant, ce projet nous permettra nous améliorer.
    Nous devons rendre des comptes rendu d'avancement du projet eu tuteur et nous devrons rendre un mémoire avant la soutenance.
    En ce qui concerne l'interface requise je n'ai pas compris la question.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Par défaut
    Voila ce que j'ai fait pour la distribution des cartes:
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    #include<stdio.h>
    #include<conio.h>
    #include<time.h>
    #include<stdlib.h>
     
     
     
    void main (void)
    {
    int A=0; /*pour la 1er distribution A=0 si non A=1*/
    int n2;  /*couleur de la carte*/
    int n1;  /*numero de ma carte*/
    int i;
    if(A==0)
    	{
    	for(i=0;i<7;i++)
    		{
    		nb_aleatoire_c(n2);
    		nb_aleatoire_n(n1);
    		}
    	}
    else
    	{
    	nb_aleatoire_c(n2);
    	nb_aleatoire_n(n1);
    	}
    }
     
     
     
    int nb_aleatoire_n (int n1)
    {
    int nalea=0;
    srand(time(NULL));
    nalea=(rand()%9)+1;
    return=nalea;
    getch();
    }
     
    int nb_aleatoire_c (int n1)
    {
    int nalea=0;
    srand(time(NULL));
    nalea=(rand()%4)+1;
    return=nalea;
    getch();
    }

  7. #7
    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 enzo_fxx
    En ce qui concerne l'interface requise je n'ai pas compris la question.
    Tu dois faire une application en mode texte ou en mode graphique ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Par défaut
    En mode texte

  9. #9
    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 enzo_fxx
    Voila ce que j'ai fait pour la distribution des cartes:
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    #include<stdio.h>
    #include<conio.h>
    #include<time.h>
    #include<stdlib.h>
     
     
     
    void main (void)
    {
    int A=0; /*pour la 1er distribution A=0 si non A=1*/
    int n2;  /*couleur de la carte*/
    int n1;  /*numero de ma carte*/
    int i;
    if(A==0)
    	{
    	for(i=0;i<7;i++)
    		{
    		nb_aleatoire_c(n2);
    		nb_aleatoire_n(n1);
    		}
    	}
    else
    	{
    	nb_aleatoire_c(n2);
    	nb_aleatoire_n(n1);
    	}
    }
     
     
     
    int nb_aleatoire_n (int n1)
    {
    int nalea=0;
    srand(time(NULL));
    nalea=(rand()%9)+1;
    return=nalea;
    getch();
    }
     
    int nb_aleatoire_c (int n1)
    {
    int nalea=0;
    srand(time(NULL));
    nalea=(rand()%4)+1;
    return=nalea;
    getch();
    }
    mauvais usage de srand() :

    http://emmanuel-delahaye.developpez.com/notes.htm#rand

    J'ai donné un algorithme, il ne va pas ?

    Une fois que le cartes sont mélangées, une distribution, c'est juste une lecture séquentielle du tableau (prendre les cartes à la suite) et les copier dans les jeux des participants. Il ne faut rien inventer de compliquer, il suffit souvent de 'singer' ce qu'on fait en vrai...

  10. #10
    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 enzo_fxx
    En mode texte
    Ok. Je confirme donc que je conseille l'usage exclusif des fonctions standard du C, donc du mode 'console' (<stdio.h>). Pas le temps de jouer avec <conio.h>.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Par défaut
    De quel algorithme parle tu ?

  12. #12
    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 enzo_fxx
    De quel algorithme parle tu ?
    http://www.developpez.net/forums/sho...98&postcount=4

    faut suivre...

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Par défaut
    Je sais pas comment faire sa aussi.

  14. #14
    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 enzo_fxx
    Je sais pas comment faire sa aussi.
    Ben essaye, ça mord pas...

    Donne une description de ton jeu de UNO (désolé, de mémoire, je ne m'en souviens plus).

  15. #15
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 36
    Par défaut
    mauvaise utilisation de srand
    Emmanuel parle de l'initialisation de rand() avec srand
    Tu réinitialise ta génération à chaque appel de ta fonction,
    pour des appels rapprochés comme tu fais tu vas générer les même nombres (1 seconde c'est long )

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Par défaut
    Voila ce que j'ai fait pouvez vous corriger mes erreurs :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>  
     
     
     
    typedef struct carte
    {
      char *valeur;
      char *couleur;
      char *autre;
      char *jocker;
    }
    Carte;
     
    /* Initialise le jeu pour qu'il contienne les
     * 98 cartes d'un jeu standard
     */
     
     void init(Carte *jeu)
    {
      char *valeur[]={"1", "2", "3", "4", "5", "6","7", "8", "9",};
      char *couleur[]={"Bleu", "Rouge", "Jaune", "Vert"};
      char *autre[]={"+2","INVERSION","PASSER UN TOUR"};
      char *jocker[]={"+4","JOCKER"};
      int i;
      for(i=0; i<72; i++)
      {
        jeu[i].valeur=valeur[i%9];
        jeu[i].couleur=couleur[i/9];
      }
      for(i=0; i<18; i++)
      {
        jeu[i].autre=autre[i%3];
        jeu[i].couleur=couleur[i/3];
      }
      for(i=0; i<8; i++)
      {
        jeu[i].jocker=jocker[i%2];
        jeu[i].couleur=couleur[i/2];
      }                  
    }
     
     
    void melanger(Carte *jeu)
    {
      int i,n;
      Carte tmp;
      srand(time(NULL)); /* Initialise le generateur pseudo aleatoire */
      for (i=0; i<98; i++)
      {
        n=rand()%98;     /* n est un nombre pseudo aleatoire entre 0 et 97 */
        tmp=jeu[i];
        jeu[i]=jeu[n];
        jeu[n]=tmp;
      }  
    }
     
    main()
    {
      init(jeu);
      melanger(jeu);
    }

  17. #17
    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 enzo_fxx
    Voila ce que j'ai fait pouvez vous corriger mes erreurs :
    Et si tu commençais par le faire toi même :
    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
    31
    32
    33
    34
    35
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c: In function `init':
    main.c:22: warning: initialization discards qualifiers from pointer target type
    main.c:22: warning: initialization discards qualifiers from pointer target type
    main.c:22: warning: initialization discards qualifiers from pointer target type
    main.c:22: warning: initialization discards qualifiers from pointer target type
    main.c:22: warning: initialization discards qualifiers from pointer target type
    main.c:22: warning: initialization discards qualifiers from pointer target type
    main.c:22: warning: initialization discards qualifiers from pointer target type
    main.c:22: warning: initialization discards qualifiers from pointer target type
    main.c:22: warning: initialization discards qualifiers from pointer target type
    main.c:23: warning: initialization discards qualifiers from pointer target type
    main.c:23: warning: initialization discards qualifiers from pointer target type
    main.c:23: warning: initialization discards qualifiers from pointer target type
    main.c:23: warning: initialization discards qualifiers from pointer target type
    main.c:24: warning: initialization discards qualifiers from pointer target type
    main.c:24: warning: initialization discards qualifiers from pointer target type
    main.c:24: warning: initialization discards qualifiers from pointer target type
    main.c:25: warning: initialization discards qualifiers from pointer target type
    main.c:25: warning: initialization discards qualifiers from pointer target type
    main.c: At top level:
    main.c:60: warning: return type defaults to `int'
    main.c:60: warning: function declaration isn't a prototype
    main.c: In function `main':
    main.c:61: error: `jeu' undeclared (first use in this function)
    main.c:61: error: (Each undeclared identifier is reported only once
    main.c:61: error: for each function it appears in.)
    Process terminated with status 1 (0 minutes, 1 seconds)
    3 errors, 20 warnings
    Je conseille ceci :

    http://emmanuel-delahaye.developpez....tm#cfg_compilo
    Ensuite, dans un jeu de UNO, il y a 108 cartes...
    • 4 cartes numérotées 0 (1 de chaque couleur: bleu, rouge, jaune, vert)
    • 18 cartes bleues, numérotées entre 1 et 9
    • 18 cartes rouges, numérotées entre 1 et 9
    • 18 cartes jaunes, numérotées entre 1 et 9
    • 18 cartes vertes, numérotées entre 1 et 9
    • 8 cartes "+2", (2 de chaque couleur)
    • 8 cartes "INVERSION", (2 de chaque couleur)
    • 8 cartes "PASSER UN TOUR", (2 de chaque couleur)
    • 4 cartes "JOKER"
    • 4 cartes "+4"

    http://fr.wikipedia.org/wiki/Uno_(jeu)

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Par défaut
    Peut tu m'expliquer les warnings et est ce que je suis bien parti ou alors devrai-je tout recommencer ?

  19. #19
    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 enzo_fxx
    Peut tu m'expliquer les warnings et est ce que je suis bien parti ou alors devrai-je tout recommencer ?
    Tu es mal parti en ce sens que tu ne suis pas la règle de ce jeu.

    Quand au codage, on verra après. Commence par faire une étude préalable, une analyse du jeu, du mécanisme, de l'interface 1 joueur, n joueurs...

    Je sens que tu es parti pour coder à l'arrache, c'est mal barré...

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 31
    Par défaut
    Je connais à peu près la règle du jeu, par quoi devrait-je commencer ?

Discussions similaires

  1. [langage] Je cherche un bon livre ?
    Par Anonymous dans le forum Langage
    Réponses: 13
    Dernier message: 09/04/2003, 13h16
  2. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  3. [langage] comment créer des fichiers ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 05/05/2002, 16h33
  4. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37
  5. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 10h21

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