Partage
  • Partager sur Facebook
  • Partager sur Twitter

Jeu du 31

Besoin d’aide svp

    8 décembre 2018 à 19:32:11

    bonjour je n’arrive pas a coder le jeu du 31 si qlqn peut m’aider svp

    Cette fonctionnalité consiste à programmer le déroulement d’une manche (une joueuse humaine contre la ma- chine, et affichage du score à la fin de la manche). Utilisez PHPMyAdmin pour insérer des instances pour certaines de vos tables (e.g., des joueuses). On peut décomposer cette fonctionnalité en trois étapes :

    • Initialiser la manche (création d’une partie entre deux joueuses déjà stockées en BD, initialisation de la main des joueuses, des piles de pioche et défausse, de la joueuse qui commence, etc.).

    • Dérouler un tour (première joueuse, puis la seconde). Si c’est la machine qui joue, elle joue au hasard (e.g., 10% de chance de cogner, 50% de chance de piocher la carte de défausse et la carte défaussée est choisie au hasard parmi les quatre). Pour la joueuse humaine, il faut afficher sa main (voir ci-dessous) et créer un ou plusieurs formulaires pour demander si elle cogne, où elle pioche puis quelle carte elle défausse. Les informations sur le tour sont stockées en base, et un nouveau tour peut démarrer.

    • Quand la manche se termine (i.e., une joueuse a cogné, et l’autre joueuse a joué une dernière fois), calculer le score des deux joueuses et afficher qui a gagné.

    • Partager sur Facebook
    • Partager sur Twitter
      9 décembre 2018 à 12:36:14

      Salut, et tu crois qu'on va le faire à ta place?

      Un début de code peut-etre?

      • Partager sur Facebook
      • Partager sur Twitter
        9 décembre 2018 à 14:00:14

        Bonjour,

        Manque de précisions

        Vous êtes ici sur un forum d'entraide communautaire et non pas sur un forum de demande de service, le but n'est donc pas de fournir une réponse toute faite ou de directement fournir la solution à quiconque viendrait sans la moindre trace. Afin d'obtenir de l'aide et une solution à votre problème, il est fortement recommandé de présenter clairement l'état actuel du problème en nous fournissant :

        • Un descriptif clair et précis du problème
        • La tentative actuelle de résolution que vous avez effectué
        • Le résultat attendu et le résultat actuel
        • Toutes pistes de recherches pouvant aider à la résolution
        • Partager sur Facebook
        • Partager sur Twitter

        Pas d'aide concernant le code par MP, le forum est là pour ça :)

          10 décembre 2018 à 17:09:55

          J’ai créé ma base de données en sql mais elle ne fonctionne pas je ne comprends pas ou sont les erreurs ensuite pour l’intialisation des joueuses j’ai commencé un semblant de code mais je ne sais pas si il est correct je vous envoie le code demain voici ma base de donnee 

          DROP TABLE IF EXISTS

          Partie;

          CREATE TABLE Partie(

          idP_PARTIE INT AUTO_INCREMENT NOT NULL,

          dateD_PARTIE DATE,

          dateF_PARTIE DATE,

          jeu_de_cartes_idjc_jeu_de_cartes INT,

          idJ_Joueur INT,

             PRIMARY KEY(idP_PARTIE)

          ) ENGINE = InnoDB; DROP TABLE IF EXISTS

          Manche;

          CREATE TABLE Manche(

          idM_Manche INT AUTO_INCREMENT NOT NULL,

          dateDM_Manche DATE,

          dateFM_Manche DATE,

          score1_Manche INT,

          score2_Manche INT,

          idP_PARTIE INT,

          joueur_idj_joueur INT,

             PRIMARY KEY(idM_Manche)

          ) ENGINE = InnoDB; DROP TABLE IF EXISTS

          Tour;

          CREATE TABLE Tour(

          idT_Tour INT AUTO_INCREMENT NOT NULL,

          numT_Tour INT,

          nbpointsJ1_Tour INT,

          nbpointsJ2_Tour INT,

          idM_Manche INT,

             PRIMARY KEY(idT_Tour)

          ) ENGINE = InnoDB; DROP TABLE IF EXISTS

          Joueur;

          CREATE TABLE Joueur(

          idJ_Joueur INT AUTO_INCREMENT NOT NULL,

          Datecreation_Joueur DATE,

          couleur_Joueur CHAR,

          joueuse_ia_idjia_joueuse_ia INT,

          joueuse_h_idjh_joueuse_h INT,

             PRIMARY KEY(idJ_Joueur)

          ) ENGINE = InnoDB; DROP TABLE IF EXISTS

          Jeu_de_cartes;

          CREATE TABLE Jeu_de_cartes(

          idJC_Jeu_de_cartes INT AUTO_INCREMENT NOT NULL,

          label_Jeu_de_cartes CHAR,

          nomcréa_Jeu_de_cartes CHAR,

          url_Jeu_de_cartes CHAR,

          partie_idp_partie INT,

             PRIMARY KEY(idJC_Jeu_de_cartes)

          ) ENGINE = InnoDB;

          DROP TABLE IF EXISTS

          Cartes;

          CREATE TABLE Cartes(

          idC_Cartes INT AUTO_INCREMENT NOT NULL,

          code_Cartes INT,

          nomC_Cartes CHAR,

          image_Cartes NUMERIC,

          idJC_Jeu_de_cartes INT,

             PRIMARY KEY(idC_Cartes)

          ) ENGINE = InnoDB; DROP TABLE IF EXISTS

          Joueuse_H;

          CREATE TABLE Joueuse_H(

          idJH_Joueuse_H INT AUTO_INCREMENT NOT NULL,

          nomH_Joueuse_H CHAR,

          prenom_Joueuse_H CHAR,

          joueur_idj_joueur INT,

             PRIMARY KEY(idJH_Joueuse_H)

          ) ENGINE = InnoDB; DROP TABLE IF EXISTS

          Joueuse_IA;

          CREATE TABLE Joueuse_IA(

          idJIA_Joueuse_IA INT AUTO_INCREMENT NOT NULL,

          nomIA_Joueuse_IA CHAR,

          parametres_Joueuse_IA INT,

          historique_Joueuse_IA INT,

          joueur_idj_joueur INT,

             PRIMARY KEY(idJIA_Joueuse_IA)

          ) ENGINE = InnoDB; DROP TABLE IF EXISTS ACTION

             ;

          CREATE TABLE ACTION(

          idA_Action INT AUTO_INCREMENT NOT NULL,

          cogner1_Action BOOL,

          pilepioché1_Action INT,

          cartepioché1_Action INT,

          cartedefausse1_Action INT,

             PRIMARY KEY(idA_Action)

          ) ENGINE = InnoDB; DROP TABLE IF EXISTS

          jouer;

          CREATE TABLE jouer(

          idP_PARTIE INT AUTO_INCREMENT NOT NULL,

          idJ_Joueur INT NOT NULL,

             PRIMARY KEY(idP_PARTIEidJ_Joueur)

          ) ENGINE = InnoDB; DROP TABLE IF EXISTS

          se_compose;

          CREATE TABLE se_compose(

          idT_Tour INT AUTO_INCREMENT NOT NULL,

          idA_Action INT NOT NULL,

             PRIMARY KEY(idT_TouridA_Action)

          ) ENGINE = InnoDB; DROP TABLE IF EXISTS

          joue;

          CREATE TABLE joue(

          idJ_Joueur INT AUTO_INCREMENT NOT NULL,

          idA_Action INT NOT NULL,

             PRIMARY KEY(idJ_JoueuridA_Action)

          ) ENGINE = InnoDB; ALTER TABLE

             Partie ADD CONSTRAINT FK_Partie_jeu_de_cartes_idjc_jeu_de_cartes FOREIGN KEY(

          jeu_de_cartes_idjc_jeu_de_cartes

             ) REFERENCES Jeu_de_cartes(idJC_Jeu_de_cartes);

          ALTER TABLE

             Partie ADD CONSTRAINT FK_Partie_idJ_JoueurFOREIGN KEY(idJ_Joueur) REFERENCES Joueur(idJ_Joueur);

          ALTER TABLE

             Manche ADD CONSTRAINT FK_Manche_idP_PARTIEFOREIGN KEY(idP_PARTIE) REFERENCES Partie(idP_PARTIE);

          ALTER TABLE

             Manche ADD CONSTRAINT FK_Manche_joueur_idj_joueur FOREIGN KEY(joueur_idj_joueur) REFERENCES Joueur(idJ_Joueur);

          ALTER TABLE

             Tour ADD CONSTRAINT FK_Tour_idM_MancheFOREIGN KEY(idM_Manche) REFERENCES Manche(idM_Manche);

          ALTER TABLE

             Joueur ADD CONSTRAINT FK_Joueur_joueuse_ia_idjia_joueuse_ia FOREIGN KEY(joueuse_ia_idjia_joueuse_ia) REFERENCES Joueuse_IA(idJIA_Joueuse_IA);

          ALTER TABLE

             Joueur ADD CONSTRAINT FK_Joueur_joueuse_h_idjh_joueuse_h FOREIGN KEY(joueuse_h_idjh_joueuse_h) REFERENCES Joueuse_H(idJH_Joueuse_H);

          ALTER TABLE

          Jeu_de_cartes ADD CONSTRAINT FK_Jeu_de_cartes_partie_idp_partie FOREIGN KEY(partie_idp_partie) REFERENCES Partie(idP_PARTIE);

          ALTER TABLE

             Cartes ADD CONSTRAINT FK_Cartes_idJC_Jeu_de_cartes FOREIGN KEY(idJC_Jeu_de_cartes) REFERENCES Jeu_de_cartes(idJC_Jeu_de_cartes);

          ALTER TABLE

          Joueuse_H ADD CONSTRAINT FK_Joueuse_H_joueur_idj_joueur FOREIGN KEY(joueur_idj_joueur) REFERENCES Joueur(idJ_Joueur);

          ALTER TABLE

          Joueuse_IA ADD CONSTRAINT FK_Joueuse_IA_joueur_idj_joueur FOREIGN KEY(joueur_idj_joueur) REFERENCES Joueur(idJ_Joueur);

          ALTER TABLE

          jouer ADD CONSTRAINT FK_jouer_idP_PARTIEFOREIGN KEY(idP_PARTIE) REFERENCES Partie(idP_PARTIE);

          ALTER TABLE

          jouer ADD CONSTRAINT FK_jouer_idJ_JoueurFOREIGN KEY(idJ_Joueur) REFERENCES Joueur(idJ_Joueur);

          ALTER TABLE

          se_compose ADD CONSTRAINT FK_se_compose_idT_Tour FOREIGN KEY(idT_Tour) REFERENCES Tour(idT_Tour);

          ALTER TABLE

          se_compose ADD CONSTRAINT FK_se_compose_idA_Action FOREIGN KEY(idA_Action) REFERENCES ACTION(idA_Action);

          ALTER TABLE

          joue ADD CONSTRAINT FK_joue_idJ_Joueur FOREIGN KEY(idJ_Joueur) REFERENCES Joueur(idJ_Joueur);

          ALTER TABLE

          joue ADD CONSTRAINT FK_joue_idA_Action FOREIGN KEY(idA_Action) REFERENCES ACTION(idA_Action);

          • Partager sur Facebook
          • Partager sur Twitter
            11 décembre 2018 à 8:17:08

            Encore une fois, on ne le fera pas pour toi. Et ce que tu montres c'est seulement le SQL, la description de la base de données. Il nous faut aussi le PHP, ce qui fait que quand une machine bouge, il se passe tel et tel truc.

            Je te laisse également éditer ton précédent message pour le mettre en forme à l'aide du bouton </> et du langage approprié (sélectionne et copie ton code, clique sur le bouton, colle ton code, choisis le bon langage et enregistre).

            christouphe : tu t'es loupé dans le lien, mais j'ai trouvé le doublon dont tu parles, il avait été mis en spam (notre anti-spam est… zélé).

            • Partager sur Facebook
            • Partager sur Twitter

            Pas d'aide concernant le code par MP, le forum est là pour ça :)

              11 décembre 2018 à 11:22:17

              @Lamecarlate: comme c'est celui dans lequel j'avais répondu ^^ l'autre je ne le l'avais jamais vu ;)
              • Partager sur Facebook
              • Partager sur Twitter
                11 décembre 2018 à 18:26:23

                Bonjour oui je sais je ne vous ai pas demandé de me le faire mais de m'aider a comprendre ou sont les erreurs dans ma base de donnée sql dans un premier temps car je ne peux pas tester le code que j'ai commencé sans ma base de donnée. Merci
                • Partager sur Facebook
                • Partager sur Twitter
                  11 décembre 2018 à 20:26:55

                  Déjà 2 tables joueurs alors qu'une seule suffirait avec un champ IA (tinyint 1)  (et pas AI :) )
                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 décembre 2018 à 21:59:53

                    Oui car il faut une joueuse humaine et une joueuse artificielle (IA=intelligence artificielle)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 décembre 2018 à 9:33:53

                      donc une table joueur avec un attribut (champ) IA en booléen fera très bien l'affaire ;)

                      petit début de solution...

                      DROP TABLE IF EXISTS Partie;
                      CREATE TABLE Partie (
                          id BIGINT(11) AUTO_INCREMENT NOT NULL,
                          dateDebut DATETIME,
                          dateFin DATETIME,
                          PRIMARY KEY(id)
                      ) ENGINE = InnoDB;
                      
                      DROP TABLE IF EXISTS Joueur;
                      CREATE TABLE Joueur(
                          id BIGINT(11) AUTO_INCREMENT NOT NULL,
                          datecreation DATETIME,
                          couleur TINYINT(2),
                          IA TINYINT(1)
                          PRIMARY KEY(id)
                      ) ENGINE = InnoDB;
                      
                      DROP TABLE IF EXISTS parties_joueurs;
                      CREATE TABLE parties_joueurs (
                          id BIGINT(11) AUTO_INCREMENT NOT NULL,
                          id_joueur BIGINT(11) NOT NULL DEFAULT 0,
                          id_partie BIGINT(11) NOT NULL DEFAULT 0,
                          PRIMARY KEY(id)
                      ) ENGINE = InnoDB;
                      ALTER TABLE parties_joueurs ADD CONSTRAINT FK_id_joueur KEY(id_joueur) REFERENCES Joueur(id);
                      ALTER TABLE parties_joueurs ADD CONSTRAINT FK_id_partie KEY(id_partie) REFERENCES Partie(id);
                      
                      DROP TABLE IF EXISTS Tour;
                      CREATE TABLE Tour(
                          id BIGINT(11) AUTO_INCREMENT NOT NULL,
                          numero INT,
                          PRIMARY KEY(id)
                      ) ENGINE = InnoDB; 
                      
                      
                      DROP TABLE IF EXISTS Manche;
                      CREATE TABLE Manche(
                          id BIGINT(11) AUTO_INCREMENT NOT NULL,
                          dateDebut DATETIME,
                          dateFin DATETIME,
                          score1 INT DEFAULT 0,
                          score2 INT DEFAULT 0,
                          PRIMARY KEY(id)
                      ) ENGINE = InnoDB;
                      
                      DROP TABLE IF EXISTS partie_tour_manche;
                      CREATE TABLE partie_tour_manche(
                          id BIGINT(11) AUTO_INCREMENT NOT NULL,
                          id_partie BIGINT(11) NOT NULL DEFAULT 0,
                          id_tour BIGINT(11) NOT NULL DEFAULT 0,
                          id_manche BIGINT(11) NOT NULL DEFAULT 0,
                          PRIMARY KEY(id)
                      ) ENGINE = InnoDB;
                      ALTER TABLE partie_tour_manche ADD CONSTRAINT FK_id_partie KEY(id_partie) REFERENCES Partie(id);
                      ALTER TABLE partie_tour_manche ADD CONSTRAINT FK_id_tour KEY(id_tour) REFERENCES Tour(id);
                      ALTER TABLE partie_tour_manche ADD CONSTRAINT FK_id_manche KEY(id_manche) REFERENCES Manche(id);
                      ALTER TABLE partie_tour_manche ADD UNIQUE INDEX UI_partie_tour_manche  KEY(id_partie,id_tour,id_manche);



                      -
                      Edité par christouphe 12 décembre 2018 à 10:00:01

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Jeu du 31

                      × 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