Ajouter des niveaux dans un jeu

Ajouter des niveaux dans un jeu - Java - Programmation

Marsh Posté le 14-01-2009 à 22:59:47    

Bonjour,
Je fait un petit jeu de reverso en java.
J'ai reussi à faire le premier niveau.
 
Maintenant, je veux implanter les différents niveaux.
Et là je bloque.
 
J'y ai mis pour commencer 2 niveaux (le placement des pions du premier niveau est identique au second mais je le changerai après).
Ce qui m'interesse c'est que lorsque je clique sur le JmenuItem niveau2 cela joue le code du niveau2.
Voici mon code:
Code :
 
package reverso;
 
import java.awt.Component;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
 
public class Fenetre extends JFrame implements ActionListener, Icon {
   /**
    *
    */
   private static final long serialVersionUID = 1L;
   private JPanel pan = new JPanel();
   private JMenuBar barreMenus;
   private JMenu niveaux;
   private JMenuItem niveau1, niveau2, niveau3, niveau4;
   protected ImageIcon b1;
   protected ImageIcon b2;
   protected JButton[] boutons;
 
   public Fenetre() {
 
      this.setTitle("Reverso" );
      this.setSize(450, 500);
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      this.setResizable(false);
      this.setLocationRelativeTo(null);
      barreMenus = new JMenuBar();
      setJMenuBar(barreMenus);
      niveaux = new JMenu("Niveaux" );
      barreMenus.add(niveaux);
      niveau1 = new JMenuItem("Niveau1" );
      niveaux.add(niveau1);
      niveau1.addActionListener(this);
      niveau2 = new JMenuItem("Niveau2" );
      niveaux.add(niveau2);
      niveau2.addActionListener(this);
      niveau3 = new JMenuItem("Niveau3" );
      niveaux.add(niveau3);
      niveau3.addActionListener(this);
      niveau4 = new JMenuItem("Niveau4" );
      niveaux.add(niveau4);
      niveau4.addActionListener(this);
 
      setLayout(new GridLayout(5, 5, 0, 0));
      JButton[] b = new JButton[25];
      this.boutons = b;
      for (int i = 0; i < b.length; i++) {
         b1 = new ImageIcon("b1.gif" );
         b2 = new ImageIcon("b2.gif" );
         b[i] = new JButton(b1);
         b[i].setSelectedIcon(b2);
         b[i].addActionListener(this);
         pan.add(b[i]);
      }
      setContentPane(pan);
   }
 
   {
 
      this.setContentPane(pan);
      this.setVisible(true);
   }
 
   @Override
   public void actionPerformed(ActionEvent e) {
      // TODO Auto-generated method stub
      Object source = e.getSource();
      if (e.equals(niveau1)) {
         for (int i = 6; i <= 8; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 11; i <= 13; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
 
         for (int i = 16; i <= 18; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 0; i <= 0; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
            }
         }
         for (int i = 4; i <= 4; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
            }
         }
         for (int i = 20; i <= 20; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 24; i <= 24; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 1; i <= 3; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
            }
         }
         for (int i = 5; i <= 5; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 10; i <= 10; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 15; i <= 15; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 21; i <= 23; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 9; i <= 9; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
            }
         }
         for (int i = 14; i <= 14; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
            }
         }
         for (int i = 19; i <= 19; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
            }
         }
      }
      if (e.equals(niveau2)) {
         for (int i = 6; i <= 8; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 2].setSelected(!boutons[i + 2].isSelected());
               boutons[i - 2].setSelected(!boutons[i - 2].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 11; i <= 13; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
 
         for (int i = 16; i <= 18; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 0; i <= 0; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
            }
         }
         for (int i = 4; i <= 4; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
            }
         }
         for (int i = 20; i <= 20; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 24; i <= 24; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 1; i <= 3; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
            }
         }
         for (int i = 5; i <= 5; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 10; i <= 10; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 15; i <= 15; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 21; i <= 23; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i + 1].setSelected(!boutons[i + 1].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
            }
         }
         for (int i = 9; i <= 9; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
            }
         }
         for (int i = 14; i <= 14; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
            }
         }
         for (int i = 19; i <= 19; i++) {
            if (source == boutons[i]) {
               boutons[i].setSelected(!boutons[i].isSelected());
               boutons[i - 1].setSelected(!boutons[i - 1].isSelected());
               boutons[i - 5].setSelected(!boutons[i - 5].isSelected());
               boutons[i + 5].setSelected(!boutons[i + 5].isSelected());
            }
         }
      }
   }
 
   @Override
   public int getIconHeight() {
      // TODO Auto-generated method stub
      return 0;
   }
 
   @Override
   public int getIconWidth() {
      // TODO Auto-generated method stub
      return 0;
   }
 
   @Override
   public void paintIcon(Component c, Graphics g, int x, int y) {
      // TODO Auto-generated method stub
 
   }
 
}
 
 
Si quelqu'un à une idée, elle est la bienvenue.
Bonne continuation

Reply

Marsh Posté le 14-01-2009 à 22:59:47   

Reply

Marsh Posté le 27-01-2009 à 20:28:22    

ca doit etre optimisable je pense :/


Message édité par tomsoft le 27-01-2009 à 20:28:42
Reply

Marsh Posté le 27-01-2009 à 22:07:06    

Bonjour,
Oui cela a été fait mais voici la solution à mon post:
Il suffisait de rajouter ça:
public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  Object source = e.getSource();
  if (source instanceof JMenuItem) {
   
   // sélection des niveaux
   if (source == niveau1) {
    selectedNiveau = "niveau1";
     
 
   } else if (source == niveau2) {
    selectedNiveau = "niveau2";

Reply

Marsh Posté le 01-02-2009 à 03:10:22    

olihya tu devrais plutôt essayer de réduire toutes ces partie de code redondantes :/


---------------
- mon feed-back
Reply

Marsh Posté le 01-02-2009 à 11:27:29    

:hello:  
Merci pour ta réponse Zipo,
Oui je vais me pencher la dessus.
Bonne journée.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed