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

Langage Java Discussion :

[Processing]Afficher le nombre de coups dans jeu du memory


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2016
    Messages : 2
    Points : 3
    Points
    3
    Par défaut [Processing]Afficher le nombre de coups dans jeu du memory
    Bonjour,

    Je suis en ISN (Informatique et Sciences du Numériques) et j'apprends à coder en java avec l'environnement processing.
    Actuellement, nous codons le jeu du memory et je suis bloqué pour afficher le nombre de coups joués. J'ai déja inséré les codes et la bibliothèque ControlP5 pour afficher le texte mais rien ne s'affiche. Pouvez-vous me dire ce qui cloche ? Merci par avance

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    //--------------------------------------- Déclarations -------------------------------------
    int l = 100;         // Longueur du coté du carré (100 pixels)
    int x = -100;        // Abscisse du coin supérieur gauche du premier carré
    int y = 20;          // Ordonnée du coin supérieur gauche du premier carré
    int tab1 [][] = new int[4][4];  // On déclare un tableau 2 entrées 4*4
    int tab2 [] = {
      0, 0, 0, 0, 0, 0, 0, 0
    };                   // On déclare le tableau 2 et on l'initialise
    PImage  img1 ;       // Variable pour charger et afficher l'image1
    PImage  img2 ;       // Variable pour charger une partie de l'image1
    int abs = 0 ;        // Variable pour l'abscisse du coin de la partie de l'image
    int ord = 0 ;        // Variable pour l'ordonnée du coin de la partie de l'image
    int r = 0;           // Variable random
    int clic = 0;        // Variable nombre de clics
    int i1 = -1;         // Abscisse 1er carré
    int i2 = -1;         // Ordonné 1er carré 
    int j1 = -1;         // Abscisse 2nd carré
    int j2 = -1;         // Ordonné 2nd carré 
    int n1 = -1;         // Numéro première image
    int n2 = -1;         // Numéro 2ème image
    import controlP5.*;  // On importe la bibliothèque ControlP5
    ControlP5 cp5;       // On déclare l'objet cp5
    Textarea zoneTexte;  // On déclare la zone d'affichage nommée zoneTexte
    int nbCoup = 0;      // On déclare la variable pour afficher le nombre de coups joués
     
    //-------------------------------------- Fonction Setup ()---------------------------------
    void setup()
    {
      background (255, 255, 255);    // Couleur du fond de la fenêtre principale : blanc
      size (500, 620);               // Taille de la fenêtre principale : 500 pixels de largueur et 620 pixels de hauteur
      fill (0, 0, 255);              // Couleur des carrés : bleu
      for (int i = 0; i < 4; i++)    // Boucle "for" pour les abscisses (tracer les carrés)
      { 
        x = x+120 ;                  // On décale le x de 120 pixels sur le côté droit
        y = 20;                      // L'abscisse est à 20 pixels
        for (int d = 0; d < 4; d++)  // Boucle "for" pour les ordonnées (tracer les carrés)
        {
          rect (x, y, l, l);         // On trace le carré
          y = 120 + y;               // On décale l'ordonnée de 120 pixels vers le bas
          int r = int(random(8));    // On calcule un entier au hasard entre 0 et 7.
          while (tab2[r]==2)         // Boucle "tant que" r un nombre déja rentré
          {
            r = int(random(8));      // On recalcule un nouvel entier au hasard entre 0 et 7.
          }
          tab1[i][d]=r;              // On rentre le nombre r
          tab2[r]++;                 // On indique dans le tab2 que r est maintenant rentré
        }
      }
      cp5 = new ControlP5 (this);    // On crée l'objet cp5
      zoneTexte = cp5.addTextarea ("zone")
        .setPosition(500, 55)        // Coordonnées du coin supérieur gauche
          .setSize(100, 100)         // Largeur et hauteur de la zone d'affichage
            .setFont(createFont("arial", 26))      // Police et taille de la police
              .setLineHeight(30)     // Hauteur de chaque ligne de la zone d'affichage
                .setColor(color(255))              // Couleur de zone de la police
                  .setColorBackground(color(0))    // Couleur du fond de la zone d'affichage
                    .setColorForeground(color(0))  // Couleur du premier plan
                      ;
    }  
    //------------------------------------------------ FONCTION DRAW () ------------------------
     
    void  draw ()
    {
      if (clic == 2)                 // Si le nombre de clics est égale à 2
      {
        if (n1 != n2)                // Si les deux images sont différentes
        {
          delay (2000);              // Attendre 2 secondes avant de continuer
          fill (0, 0, 255);          // Couleur des carrés : bleu
          rect (20+i1*120, 20+j1*120, l, l);  // On redessine le premier carré
          rect (20+i2*120, 20+j2*120, l, l);  // On redessine le second carré
        } else                       // Sinon
        {
          delay (2000);              // Attendre 2 secondes avant de continuer
          fill (255, 255, 255);      // Couleur des carrés : blanc
          rect (20+i1*120, 20+j1*120, l, l);  // On redessine le premier carré
          rect (20+i2*120, 20+j2*120, l, l);  // On redessine le second carré
          tab1[i1][j1]= -1;          //On rentre -1 dans le tab1 en coordonnées i1, j1
          tab1[i2][j2]= -1;          //On rentre -1 dans le tab1 en coordonnées i2, j2
        }
        clic = 0;                    // On redéfinie le nombre de clics a 0
        cp5 = new ControlP5 (this);  // On recrée l'objet cp5
        zoneTexte = cp5.addTextarea ("zone")
          .setPosition(500, 55)      // Coordonnées du coin supérieur gauche
            .setSize(100, 100)       // Largeur et hauteur de la zone d'affichage
              .setFont(createFont("arial", 26))      // Police et taille de la police
                .setLineHeight(30)   // Hauteur de chaque ligne de la zone d'affichage
                  .setColor(color(255))              // Couleur de zone de la police
                    .setColorBackground(color(0))    // Couleur du fond de la zone d'affichage
                      .setColorForeground(color(0))  // Couleur du premier plan
                        ;
      }
    }
     
    //------------------------------------------------- FONCTION MOUSEPRESSED () ---------------
    void  mousePressed ( )           // Fonction qui s'exécute quand on clique sur le carré
    {
      for (int i = 0; i < 4; i++)    // Boucle "for" pour les abscisses
      {  
        for (int d = 0; d < 4; d++)  // Boucle "for" pour les ordonnées
        {
          if (mouseX>20+i*120 && mouseX<120+i*120 && mouseY>20+d*120 && mouseY<120*d+120 && clic!=2)  // Si on clique à l'intérieur du carré
          {
            if (tab1[i][d]!=-1)
            {
              abs = (tab1 [i][d])*100;               // On prend la valeur de la matrice correspondante au carré selectionné, puis on la multiplie par 100 
              img1 = loadImage( "Image1.png" );      // On charge l'image : Image1.png
              img2 = img1.get(abs, ord, 100, 100) ;  // On charge une partie de l'image de taile 100*100
                                                     // issue du coin des coordonnés (abs;0)
              image ( img2, 20+i*120, 20+d*120 ) ;   // On affiche le morceau d'image
              if (clic==0)                           // Si on a cliqué 1 fois
              {
                i1 = i;
                j1 = d;
                n1 = tab1[i][d];
              } else                                 // Sinon
              {
                i2 = i;
                j2 = d;
                n2 = tab1[i][d];
                if (i1==i2 && j1==j2)                // On regarde si les 2 cases sont égales
                {
                  clic--;                            // Si oui, on diminue le nombre de clic 1
                }
              } 
              clic++;                                // On incrémente le nombre de clics
              int nbCoups = 12;
              String message = "Nombre de coups joués : " + "\n" + str(nbCoups);  //On définit le message comme "Nombre de coups joués :" et la variable
              zoneTexte.setText(message);            // On affiche le message
            }
          }
        }
      }
    }
    //----------------------------------------------------------------- FIN -------------------------------------------------------------

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    A mon avis ce n'est peut être pas le problème, mais pourquoi dans le draw tu redefinis ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     cp5 = new ControlP5 (this);  // On recrée l'objet cp5
        zoneTexte = cp5.addTextarea ("zone")
          .setPosition(500, 55)      // Coordonnées du coin supérieur gauche
            .setSize(100, 100)       // Largeur et hauteur de la zone d'affichage
              .setFont(createFont("arial", 26))      // Police et taille de la police
                .setLineHeight(30)   // Hauteur de chaque ligne de la zone d'affichage
                  .setColor(color(255))              // Couleur de zone de la police
                    .setColorBackground(color(0))    // Couleur du fond de la zone d'affichage
                      .setColorForeground(color(0))  // Couleur du premier plan
                        ;
    Alors qu'il l'était déjà dans setup().
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Bonjour, as-tu vérifier que tu passai bien dans le code où se trouve le code "Afficher le nombre de coup joué"

    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
     
    //------------------------------------------------- FONCTION MOUSEPRESSED () ---------------
    void  mousePressed ( )           // Fonction qui s'exécute quand on clique sur le carré
    {
      for (int i = 0; i < 4; i++)    // Boucle "for" pour les abscisses
      {  
        for (int d = 0; d < 4; d++)  // Boucle "for" pour les ordonnées
        {
          if (mouseX>20+i*120 && mouseX<120+i*120 && mouseY>20+d*120 && mouseY<120*d+120 && clic!=2)  // Si on clique à l'intérieur du carré
          {
            if (tab1[i][d]!=-1)
            {
              //... Du code non intéressant pour notre analyse
              clic++;                                // On incrémente le nombre de clics
              int nbCoups = 12;
              String message = "Nombre de coups joués : " + "\n" + str(nbCoups);  //On définit le message comme "Nombre de coups joués :" et la variable
              zoneTexte.setText(message);            // On affiche le message
            }
          }
        }
      }
    }
    Dans ton cas, on a deux if sans else correspondant. Il est possible qu'on ne passe pas dans le if sans s'en rendre compte ?

    Cordialement,
    Patrick Kolodziejczyk.

    Note : Pourquoi tu utilise str(nbCoups) et pas simplement nbCoups ?
    Pourquoi définir un variable local nbCoups, alors que tu as déjà une variable globale nbCoup ?
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  4. #4
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2016
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Résolution
    Bonjour,

    Merci pour vos messages.

    Pour wax78 : Si je ne le mets que dans le setup il ne m'affichera que zéro nan ?

    Sinon j'ai vérifié avec un ami et je me suis trompé dans les coordonnées de la fenêtre d'affichage. Je les ai inversés.

    Merci encore.

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Citation Envoyé par taxich Voir le message

    Pour wax78 : Si je ne le mets que dans le setup il ne m'affichera que zéro nan ?
    Il affichera 0 tant que tu ne referras pas un zoneText.setText(score);

    Mais je parlais de recréer l'objet dans le draw, ce qu'il ne faut pas faire. Il faut le créer un fois dans setup puis faite des update eventuellement dans le draw (mais c'est pas top non plus).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Jeu memory en java
    Par baffreux dans le forum Applets
    Réponses: 7
    Dernier message: 21/10/2013, 22h30
  2. [UC] Projet Java/UML Jeu type Memory
    Par akito dans le forum Cas d'utilisation
    Réponses: 11
    Dernier message: 17/04/2008, 13h33
  3. Jeu de Go en Java
    Par Grand sorcier dans le forum Développement 2D, 3D et Jeux
    Réponses: 8
    Dernier message: 06/04/2007, 13h21
  4. Jeu de gestion en java
    Par luckyvae dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 27/08/2006, 18h19
  5. Réponses: 4
    Dernier message: 13/02/2006, 21h58

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