Partage
  • Partager sur Facebook
  • Partager sur Twitter

Crétion code jeu : Awale

    23 novembre 2017 à 13:53:21

    void base(int t[12]){
      int j1 [6];
      int j2 [6];
      int score_j1;
      int score_j2;
      int graine;
    }
    
    void affichage(int t[12]){
    int i;
    int j1[6];
    int j2[6];
    for(i=0;i<6;i++){
            j1[i]=4;
            j2[i]=4;
            printf("%i  ",j1[0],j1[1],j1[2],j1[3],j1[4],j1[5]);
    
            printf("%i  ",j2[6],j2[7],j2[8],j2[9],j2[10],j2[11]);
    }}
    
    void Tour1(int t[12]){
    int a,i;
    int j1[6];
    int j2[6];
    printf("Commencer j1\n");
    printf("Choisisez un chiffre entre 1 et 6\n");
    scanf("%i",&a);
    while(a<1 || a>6){
        printf("Erreur chiffre entre 1 et 6 svp !\n");
        scanf("%i",&a);
    }
    printf("\n");
    j1[a]=0;
    for(i=0;i<6;i++){
    
            printf("%i  ",j1[0],j1[1],j1[2],j1[3],j1[4],j1[5]);
    
            printf("%i  ",j2[6],j2[7],j2[8],j2[9],j2[10],j2[11]);
    
    }}
    
    main()
    {
       int t[12];
       base(t);
       affichage(t);
       printf("\n");
       Tour1(t);
    }


    Bonjour, j'ai un projet a faire qui est faire le jeu Awale avec du code.

    Voici les règles pour ceux qu'ils ne connaissent pas ce jeu :

    Règle 1 : But du jeu Le but du jeu est de s'emparer d'un maximum de graines. Le joueur qui a le plus de graines à la fin de la partie l'emporte.

    Règle 2 : Le terrain de jeu Le terrain de jeu est divisé en deux territoires de 6 trous chacun. Votre territoire est en bas, c'est le territoire Sud; celui de votre adversaire est au dessus, c'est le territoire Nord. Au départ dans les douze trous sont réparties 48 graines (4 par trou).

    Règle 3 : Le tour de jeu. Chaque joueur joue à son tour, celui qui joue en premier est tiré au hasard. Le joueur va prendre l'ensemble des graines présentes dans l'un des trous de son territoire et les distribuer, une par trou, dans le sens inverse des aiguilles d'une montre.

    Règle 4 : Capture Si la dernière graine semée tombe dans un trou de l'adversaire comportant déjà 1 ou 2 graines, le joueur capture les 2 ou 3 graines résultantes. Les graines capturées sont sorties du jeu. (Le trou est alors laissé vide)

    Règle 5: Capture multiple Lorsqu'un joueur s'empare de deux ou trois graines, si la case précédente contient également deux ou trois graines, elle sont capturées aussi, et ainsi de suite.

    Règle 6: Bouclage Si le nombre de graines prises dans le trou de départ est supérieur à 11, cela fait que l'on va boucler un tour : auquel cas, à chaque passage, la case de départ est sautée et donc toujours laissée vide.

    Et voici mon code je suis coincer au moment ou le joueur choisi une case et qu'il vaut que la valeur de la case choisi devient "0".

    • Partager sur Facebook
    • Partager sur Twitter
      23 novembre 2017 à 16:33:09

      Salut,

      avant d'aller plus loin, je te conseille de faire trois choses :

      • Tout d'abord, indente ton code correctement. Une tabulation par accolade grosso modo. Et évite de fermer deux accolades en même temps. Voilà une partie de ton code indentée correctement
      void affichage(int t[12]){
          int i;
          int j1[6];
          int j2[6];
          for(i=0;i<6;i++){
              j1[i]=4;
              j2[i]=4;
              printf("%i ",j1[0],j1[1],j1[2],j1[3],j1[4],j1[5]);
      
              printf("%i ",j2[6],j2[7],j2[8],j2[9],j2[10],j2[11]);
          }
      }
      

      C'est beaucoup plus lisible, tu ne trouves pas ? :)

      • Deuxièmement, compile ton programme et fais attention aux Warning que te donnes ton compilateur. Tant qu'il y a des warning c'est qu'il y a quelque chose qui cloche - ça va compiler, mais ça fera pas ce que tu veux.
      • Troisièmement, exécute ton programme. Tu as un gros problème d'overflow (accéder en dehors des limites du tableau) dans le bout de code que j'ai posté.

      Une fois que t'auras fait tout ça, et seulement à ce moment là, je te conseille de passer à la suite. En général en programmation il faut corriger les erreurs que tu trouves dès que tu les trouves - sinon ça s'accumule et ça peut vite devenir un vrai sac à noeuds.

      -
      Edité par potterman28wxcv 23 novembre 2017 à 16:33:24

      • Partager sur Facebook
      • Partager sur Twitter
        28 novembre 2017 à 16:39:35

        Salut, je n'ai quasiment pas de warning, les seules que j'ai c'est pour les variables inutilisée, que j'ai supp du coup. Mais mon gros pb c'est d'affecter la valeur 0 a la case du tableau choisi par l'utilisateur, toute les cases du tableaux prennent la valeur 0. Et peut tu m'expliquer pour l'overflow ?
        • Partager sur Facebook
        • Partager sur Twitter
          28 novembre 2017 à 16:52:30

          Pierre-JosephDubois a écrit:

          Salut, je n'ai quasiment pas de warning, les seules que j'ai c'est pour les variables inutilisée, que j'ai supp du coup. Mais mon gros pb c'est d'affecter la valeur 0 a la case du tableau choisi par l'utilisateur, toute les cases du tableaux prennent la valeur 0. Et peut tu m'expliquer pour l'overflow ?


          Bizarre que tu n'aies pas de warning. Tu es bien sûr de ça ? Quels sont tes flags de compilation ? Est-ce que tu as -Wall dans tes flags ?

          • Ton printf a trop d'arguments. Tu demandes un "%i " qui ne requiert qu'un seul autre argument, mais t'en as mis 6
          • Qu'est ce qu'il se passe quand tu essaies d'accéder à j2[11] alors que j2 n'a que 6 éléments (déclaration int j2[6]) ?

          -
          Edité par potterman28wxcv 28 novembre 2017 à 16:53:12

          • Partager sur Facebook
          • Partager sur Twitter
            28 novembre 2017 à 16:55:51

            Hello,

            Juste une question: es-tu bien conscient que le j1 ligne 2 est différent du j1 ligne 11, qui sont différents du j1 ligne 23 ? Idem pour j2, bien entendu.

            • Partager sur Facebook
            • Partager sur Twitter

            On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

              5 décembre 2017 à 20:22:09

              Re,

              J'ai modifier une bonne partie du programme, j'ai réussi a faire déplacer les graines, je posterai le code demain je l'ai pas sur moi.

              J'ai juste un pb pas en rapport avec ca, c'est juste pour eviter de faire un nouveau sujet. Mon pb c'est en gros j'ai fais un tableau de structure pour repertorier des livres (titre,auteur etc) et apres l'utilisateur doit rentrer un titre et pourvoir retrouver un livre avec le meme titre.

              • Partager sur Facebook
              • Partager sur Twitter
                6 décembre 2017 à 12:01:45

                Pierre-JosephDubois a écrit:

                Re,

                J'ai modifier une bonne partie du programme, j'ai réussi a faire déplacer les graines, je posterai le code demain je l'ai pas sur moi.

                J'ai juste un pb pas en rapport avec ca, c'est juste pour eviter de faire un nouveau sujet. Mon pb c'est en gros j'ai fais un tableau de structure pour repertorier des livres (titre,auteur etc) et apres l'utilisateur doit rentrer un titre et pourvoir retrouver un livre avec le meme titre.

                Si ça n'a pas de rapport, tu dois créer un nouveau sujet.

                • Partager sur Facebook
                • Partager sur Twitter

                Crétion code jeu : Awale

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown