Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pioche Scabble.

    27 novembre 2020 à 10:26:42

    Bonjour à tous !

    Après toute ces pioches de Scabble qui pleuvent sur le forum,

    J'ai ce qu'il vous faut : la lib pioche : libpioche.a

    fichier entête pioche.h :

    #ifndef SCRABBLE_PIOCHE_H
    #define SCRABBLE_PIOCHE_H
    
    void init_pioche(void);
    char pioche(void);
    
    #endif // SCRABBLE_PIOCHE_H

    Exemple d'utilisation main_test.c :

    #include <stdio.h>
    #include "pioche.h"
    
    int main(void)
    {
        init_pioche();
        while(1)
        {
           char pion = pioche();
           if(!pion) break;
           printf("%c,", pion);
        }
        return 0;
    }

    L'exemple vide le sac jusqu'à qu'il n'y ai plus le pions !

    On ne peut faire guère plus simple !

    PS : Vous aurez le code après le 7 décembre !



    • Partager sur Facebook
    • Partager sur Twitter
      27 novembre 2020 à 11:11:06

      C'est bien gentil de ta part mais envoyer une bibliothèque statique précompilée pour une plateforme et architecture précise sur le net comme ça, ça n'a pas vraiment d'intérêt.

      -
      Edité par markand 27 novembre 2020 à 11:11:20

      • Partager sur Facebook
      • Partager sur Twitter

      git is great because Linus did it, mercurial is better because he didn't.

        27 novembre 2020 à 11:18:06

        Hello !

        Pourquoi pas 😋

        Sinon pour un jeu type scrabble dans sa variante classique il y a plusieurs éléments qu'il faut modéliser :

        • les joueurs
          ils sont au nombre de deux minimum et quatre maximum. Ils jouent chacun leur tour, le premier joueur est sélectionné au hasard, …
          Ils ont chacun un nombre de points gagnés en formant des mots valides en plaçant des jetons sur le plateau de jeu. Dans la version non duplicate, le vainqueur est celui ayant le plus grands nombre de point lorsque la partie est déclarée finie (cf les règles).

        • les jetons
          un jeton c'est un petit carré (un parallélépipède pas très épais pour être plus précis) dont les deux plus grandes faces opposées sont utilisées. L'une des deux est absolument identique pour tous les jetons, l'autre comporte soit un caractère et un nombre soit absolument rien (et on l'appelle joker).

        • le sac
          Dans la version francophone, le caractère est une lettre majuscule comprise entre A et Z, aucun signe diacritique n'est utilisé. Le sac contient 102 jetons, parmi lesquels on trouve 2 jokers, 15 marqués E/1, 9 marqués A/1, …, 1 marqué Z/10. Dans d'autres langues les caractères, points et distributions peuvent être différents. Au cours du jeu on peut : remplir le sac avec tous les jetons, mélanger les jetons du sac, tirer entre 1 et 7 jetons hors du sac, remettre des jetons préalablement tirés dans le sac.
          Les joueurs aguerris gardent un compte du nombre de jetons restant dans le sac, et connaissent le nombre de chaque jetons non encore joués.

        • le chevalet
          c'est l'endroit réservé au stockage des jetons tirés du sac, chaque joueur en possède un. Les jetons de son chevalet sont les seuls que le joueur peut placer sur le plateau lorsque c'est son tour. Un joueur ne connait que les jetons de son chevalet, pas ceux des autres joueurs.

        • le plateau
          Dans sa version classique c'est une grille carrée de 15 cases sur 15 (225 cases en tout). Certaines cases sont multiplicatrice et affectent le décompte du score. Il y a, dans la version francophone classique,  24 cases «lettre compte double» placées en …, …
          La case en ligne 7 et colonne 7 est nommée la case départ : le premier mot joué doit impérativement couvrir cette case.

        • les règles
          cf le net pour les détails

        • le dico
          Chaque langue possède au moins un dico de référence. Dans la version francophone classique ce dictionnaire est l'Officiel du Scrabble édité par Larousse. La version 8 est actuellement utilisée (depuis janvier 2020).

        Ça c'est juste le préambule de l'analyse.

        • Partager sur Facebook
        • Partager sur Twitter
          27 novembre 2020 à 11:28:03

          Oui, j'ai omis de préciser que la lib est compilée sous MinGw en 32bit.

          Sinon, tu attends le 8 décembre !

          EDIT :

          White Crow a écrit:

          Sinon pour un jeu type scrabble dans sa variante classique il y a plusieurs éléments qu'il faut modéliser...

          Je connais un peu le scrabble, quoi que il y a bien longtemps que je n'y ai pas joué !

          Mon sac contient bien 102 pièces (on ne le voit pas) le nombre de pièce à tirer n'a rien à voir avec le sac !

          Je n'ai pas pour but de faire un scrabble, et je n'ai pas l'exercice à faire !

          -
          Edité par rouloude 27 novembre 2020 à 11:37:33

          • Partager sur Facebook
          • Partager sur Twitter
            27 novembre 2020 à 11:40:56

            J'ai testé, ça marche rouloude.

            Un autre exemple ...

            #include <stdio.h>
            
            void init_pioche(void);
            char pioche(void);
            
            int main(void)
            {
                char tab[26] = {0};
                char pion;
            
                init_pioche();
            
                while((pion = pioche())){
                    if(pion != '?')
                        tab[pion - 'A']++;
                }
            
                for(int i = 0; i < 26; i++){
                    printf("%c -> %d\n", i + 'A', tab[i]);
                }
            
                return 0;
            }



            • Partager sur Facebook
            • Partager sur Twitter
              27 novembre 2020 à 11:45:16

              Tu as voulu voir si j'avais mis le bon nombre de pièces de chaque lettre ?
              • Partager sur Facebook
              • Partager sur Twitter
                27 novembre 2020 à 11:49:39

                Simple curiosité de ma part ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  27 novembre 2020 à 17:54:53

                  Pour répondre à mackand, l’intérêt, n'est pas la lib, mais c'était pour montrer à ceux qui font le scrabble de détacher leur projet en plusieurs modules. (De plus, ils font le projet par groupes de deux ou trois élèves, ils peuvent donc partager plus facilement les tâches).

                  C'est donc pour montrer qu'une fois qu'un module est fait, il ne reste plus que deux fonctions très simple dans le cas de l'exemple. Ce qui simplifie fortement le code du module principal.

                  La lib, c'est juste pour faire voir que ce n'était pas bidon, (magma à testé).

                  Si je n'ai pas mis le code, c'est que le prof n'a pas l'air commode, et la copie est très sévèrement sanctionné. (ils ont jusqu'au 7 décembre pour le faire).

                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 novembre 2020 à 8:54:13

                    rouloude a écrit:

                    Pour répondre à mackand, l’intérêt, n'est pas la lib, mais c'était pour montrer à ceux qui font le scrabble de détacher leur projet en plusieurs modules. (De plus, ils font le projet par groupes de deux ou trois élèves, ils peuvent donc partager plus facilement les tâches).

                    Si je n'ai pas mis le code, c'est que le prof n'a pas l'air commode, et la copie est très sévèrement sanctionné. (ils ont jusqu'au 7 décembre pour le faire).

                    Voilà qui est plus clair, je n'avais pas suivi cette histoire ☺️

                    • Partager sur Facebook
                    • Partager sur Twitter

                    git is great because Linus did it, mercurial is better because he didn't.

                    Pioche Scabble.

                    × 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