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

 Java Discussion :

Jeu des allumettes


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par défaut Jeu des allumettes
    Bonjour,

    Débutant total en Eclipse RCP avec SWT et JFace, je cherche à créer un jeu formalisé avec 3 boutons qui enlèvent 1 ou 2 ou 3 allumettes. La partie se joue à n joueurs et le joueur qui se retrouve à enlever la dernière allumette a perdu.
    J'ai défini une constante à 25 allumettes que je décrémente de 1,2 ou 3 en fonction du bouton cliqué par le joueur.

    Je rencontre 2 problèmes :
    - D'abord, au clique du dernier joueur, la console affiche un nombre négatif d'allumettes au lieu d'afficher "perdu" (ex : il reste 1 allumette, le joueur clique sur le bouton qui enlève une allumette, et la console affiche 0 au lieu de "perdu")
    - J'aimerais ensuite pouvoir afficher le compte de mes allumettes dans mon appli, plutôt que dans la console. Je n'y arrive pas avec setText, vu que je cherche à retourner un entier....

    Voici mon code :
    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
    package jeuallumette.parts;
     
    import javax.annotation.PostConstruct;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.events.SelectionListener;
    import org.eclipse.swt.layout.GridData;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Label;
    import org.eclipse.swt.widgets.Text;
     
    public class SamplePart {
     
    	public  static  int compteur = 25;  
    	@PostConstruct
    	public void createComposite(Composite parent) {
    		Button btn;
    		Text text;
    		Label label;
     
    		GridData btnLayoutData = (new GridData(SWT.FILL, SWT.CENTER, true, false,3,1));
    		parent.setLayout(new GridLayout(3, false));
     
    		text = new Text(parent, SWT.BORDER|SWT.READ_ONLY);
    		text.setLayoutData(new GridData(SWT.CENTER, SWT.FILL, true, false,3,1));
    		text.setText("Bienvenue dans le jeu des allumettes");
     
    		btn = new Button(parent, SWT.PUSH);
    		btn.setLayoutData(btnLayoutData);
    		btn.setText("bouton 1");
    		btn.addSelectionListener(new SelectionListener() {
     
    			@Override
    			public void widgetSelected(SelectionEvent e) {
    				if(compteur > 0) {
    					compteur = compteur-1;
    				} else if(compteur < 1) {
    					System.out.println("perdu !");
    				}
    				System.out.println(compteur);
    			}
     
    			@Override
    			public void widgetDefaultSelected(SelectionEvent e) {}
    		});
     
    		btn = new Button(parent, SWT.PUSH);
    		btn.setLayoutData(btnLayoutData);
    		btn.setText("bouton 2");
    		btn.addSelectionListener(new SelectionListener() {
     
    			@Override
    			public void widgetSelected(SelectionEvent e) {
    				if(compteur > 0) {
    					compteur = compteur-2;
    				} else if(compteur < 1) {
    					System.out.println("perdu !");
    				}
    				System.out.println(compteur);
    			}
     
    			@Override
    			public void widgetDefaultSelected(SelectionEvent e) {}
    		});
     
    		btn = new Button(parent, SWT.PUSH);
    		btn.setLayoutData(btnLayoutData);
    		btn.setText("bouton 3");
    		btn.addSelectionListener(new SelectionListener() {
     
    			@Override
    			public void widgetSelected(SelectionEvent e) {
    				if(compteur > 0) {
    					compteur =compteur-3;
    				}else if(compteur < 1){
    					System.out.println("perdu !");
    				}
    				System.out.println(compteur);
    			}
     
    			@Override
    			public void widgetDefaultSelected(SelectionEvent e) {}
    		});
     
    		label = new Label(parent, SWT.LEFT); 
    		label.setText("Restant :");
     
    	}
    }
    Et enfin l'interface minimaliste de l'appli (il s'agit de mon samplepart) qui devrait afficher le decompte des allumettes à droite de "restant"
    Nom : Sans titre.png
Affichages : 585
Taille : 9,4 Ko

    Merci beaucoup pour les pistes que vous pourrez me suggérer

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Si ton compteur vaut 1, et que tu retires 3 allumettes, ton compteur vaudra -2 si j'en crois au moins le 3 morceaux de code. Bref ton code avec le if else n'est pas bon.

    Ensuite pour ton affichage,

    Je n'y arrive pas avec setText, vu que je cherche à retourner un entier
    C'est à dire ? Un entier peut être transformer en string tu sais ?
    (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
    Membre éprouvé
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par défaut
    Merci beaucoup pour ta réponse

    J'ai essayé de changer mes if else comme ceci mais ça ne fonctionne pas :

    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
     
    			@Override
    			public void widgetSelected(SelectionEvent e) {
    				if(compteur > 0) {
    					compteur = compteur-1;
    				} else if(compteur == 0) {
    					System.out.println("perdu !");
    				}
    				System.out.println(compteur);
    			}
     
     
    			@Override
    			public void widgetSelected(SelectionEvent e) {
    				if(compteur > 0) {
    					compteur = compteur-2;
    				} else if(compteur == 0 || compteur == -1) {
    					System.out.println("perdu !");
    				}
    				System.out.println(compteur);
    			}
     
    			@Override
    			public void widgetDefaultSelected(SelectionEvent e) {}
    		});
     
     
     
    			@Override
    			public void widgetSelected(SelectionEvent e) {
    				if(compteur > 0) {
    					compteur = compteur-3;
    				}else if(compteur == 0 || compteur == -1 || compteur == -2){
    					System.out.println("perdu !");
    				}
    				System.out.println(compteur);
    			}

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Et pourquoi pas quelque chose comme ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(compteur >= 1) {
    			compteur-=1;
    		} else {
    			System.out.println("perdu !");
    }
    (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

  5. #5
    Membre éprouvé
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par défaut
    Bonjour,

    Excuse moi de ne répondre que maintenant. effectivement, comme tout bon débutant qui se respecte j'ai toujours tendance à mon compliquer la tâche...
    Cela dit, je ne comprends pas pourquoi ma dernière tentative ne fonctionne pas dans les if else....

    Quoi qu'il en soit merci beaucoup

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

Discussions similaires

  1. Jeu des allumettes
    Par totob85 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 12/12/2017, 15h49
  2. Jeu des Allumettes
    Par jca dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 23/02/2013, 16h12
  3. Jeu des allumettes - Python
    Par nala130 dans le forum Général Python
    Réponses: 2
    Dernier message: 02/02/2013, 13h26
  4. jeu des allumettes
    Par musicetcie dans le forum Télécharger
    Réponses: 5
    Dernier message: 11/11/2012, 13h05
  5. Jeu des allumettes en java
    Par tom31 dans le forum Général Java
    Réponses: 2
    Dernier message: 08/04/2008, 09h59

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