Si j'ai bien compris, c'est ta classe IHM qui fait appel à une méthode de la classe IA ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionpublic static void main(String arg[]) { SwingUtilities.invokeLater(new Runnable() { public void run() { IHM thisClass = new IHM(); thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); thisClass.setVisible(true); } }); }
private JTable getGrille2(int a) { grille2 = new JTable(a,a) { /** * */ private static final long serialVersionUID = 1L; public boolean isCellEditable(int row, int column) { return false; } }; grille2.setRowHeight(27); grille2.setSize(new Dimension(grille2.getRowHeight()*a, grille2.getRowHeight()*a)); grille2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); grille2.setRowSelectionAllowed(false); grille2.setBackground(Color.cyan); grille2.setFont(new Font("Dialog", Font.PLAIN, 22)); grille2.setGridColor(Color.black); grille2.setShowGrid(true); grille2.setLocation(new Point(60+27*a, 30)); grille2.setVisible(false); grille2.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent e) { System.out.println(grille2.getSelectedRow() + "/" + grille2.getSelectedColumn()); l = grille2.getSelectedRow(); c = grille2.getSelectedColumn(); if(placement) { placerBateau(); } } }); return grille2; }
/** * Exemple avec la classe en attribut */ public class ExempleAttribut { private ClasseB instanceB; /** * Constructeur * @param b : instance de la classe B */ public ExempleAttribut(ClasseB b){ instanceB=b; } /** * methode qui fait appel a la méthode de la classe B */ public methodeAppelante(){ instanceB.methodeB(); } /** * Lanceur */ public static void main(String[] args){ ExempleAttribut e = new ExempleAttribut(new ClasseB()); e.methodeAppelante(); } } /** * Exemple avec le parametre de la methode appelante */ public class ExempleParametre { /** * méthode qui fait appel à la classe B * @param instanceB instance de la classe B */ public methodeAppelante(ClasseB instanceB){ instanceB.methodeB(); } /** * Lanceur */ public static void main(String[] args){ ExempleParametre e = new ExempleParametre(); //On créé une nouvelle instance de B pour la donner en parametre à la méthode e.methodeAppelante(new ClasseB()); } }
public boolean verifier(int a,int b) { if (a==0 || b==0) { return false; } else { return true; } } //La méthode ci dessous est identique public boolean verifier(int a, int b){ return !(a==0 || b==0); }
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); thisClass.setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true);
public void mouseClicked(java.awt.event.MouseEvent e) { System.out.println(grille2.getSelectedRow() + "/" + grille2.getSelectedColumn()); l = grille2.getSelectedRow(); c = grille2.getSelectedColumn(); switch(i) { case 0: log.append("Placer le torpilleur (2 cases)"); placerBateau(); i = 1 ; break; case 1: if(IA.verifier(l,c)) { grille2.setValueAt("x", l, c);// si la case sélectionnée est validée, on met un x dans la case } break; } }
public static boolean verifier(int a,int b) { if (a==0||b==0) { IHM.log.append("Veuillez sélectionner une autre case.\n"); return false; } else { IHM.log.append("OK\n"); return true; } }
public class IHM { // ton code public static final int PREPARATION = 0; public static final int TIRS = 1; public static int etat_partie = PREPARATION; // ton code }
public void mouseClicked(java.awt.event.MouseEvent e) { System.out.println(grille2.getSelectedRow() + "/" + grille2.getSelectedColumn()); l = grille2.getSelectedRow(); c = grille2.getSelectedColumn(); if ( monIHM.etat_propriete = IHM.PREPARATION ) { // ton code pour les placements } if ( monIHM.etat_propriete = IHM.TIRS ) { // ton code pour la gestion des tirs } }
public void mouseClicked(java.awt.event.MouseEvent e) { System.out.println(grille2.getSelectedRow() + "/" + grille2.getSelectedColumn()); l = grille2.getSelectedRow(); c = grille2.getSelectedColumn(); switch(i) { case 0: if(nbcase < 6) { placerBateau(); break; } else { i = 1; } case 1: log.append("test"); } }
public void placerBateau() { if(nbcase < 6) { if(nbcase < longueur) { if(IA.verifier(l,c)) { grille2.setValueAt("x", l, c); nbcase++; } } else { longueur++; nbcase = 0; } } }
public static boolean verifier(int a,int b) { if (a==0||b==0) { IHM.log.append("Veuillez sélectionner une autre case.\n"); return false; } else { IHM.log.append("OK\n"); return true; } }
public void mouseClicked(java.awt.event.MouseEvent e) { System.out.println(grille2.getSelectedRow() + "/" + grille2.getSelectedColumn()); l = grille2.getSelectedRow(); c = grille2.getSelectedColumn(); switch(i) { case 0: if(nbcase < 6) { if(nbcase == 0) { m = l; n = c; } placerBateau(); break; } else { i = 1; } case 1: log.append("test"); } }
public void placerBateau() { if(nbcase < 6) { if(nbcase < longueur) { if(IA.verifier(l,c)) { if( (Math.abs(l)<m+longueur) && (Math.abs(c)<n+longueur) ) { grille2.setValueAt("x", l, c); nbcase++; } } } else { longueur++; nbcase = 0; } } }
public class IA { public static int p = 0; private static int m = 0; private static int n = 0; public static int longueur = 2; private static int x =0; public static void verifier(int a,int b) { int randa = 0; int randb = 0; if (a==0||b==0) { IHM.log.append("Veuillez sélectionner une autre case.\n"); } else { switch(p) { case 0: { int x1 = 0; int x2 = 0; int x3 = 0; int x4 = 0; randa = (int)(Math.random()*(IHM.grille3.getRowCount()-1)+1); randb = (int)(Math.random()*(IHM.grille3.getRowCount()-1)+1); if(IHM.grille2.getValueAt(a, b)!="x") { IHM.placerBateau(IHM.grille2, "x", a, b); } else { IHM.log.append("Veuillez choisir une autre case.\n"); break; } for(int i = a+1; ia-longueur+1 ; i--) { if(i>0) { if(IHM.grille2.getValueAt(i, b) == "x") { x2 = 1; } } } if(a-longueur+1 > 0 && IHM.grille2.getValueAt(a-longueur+1, b)!="x" && x2==0) { IHM.placerBateau(IHM.grille2,"o", a-longueur+1 , b); } for(int i = b+1; ib-longueur+1 ; i--) { if(i>0) { if(IHM.grille2.getValueAt(a, i) == "x") { x4 = 1; } } } if(b-longueur+1 > 0 && IHM.grille2.getValueAt(a, b-longueur+1)!="x" && x4==0) { IHM.placerBateau(IHM.grille2,"o", a , b-longueur+1); } m = a; n = b; p = 1; break; } case 1: { if(IHM.grille2.getValueAt(a, b)== "o") { if(a == m) { if(b>n) { for(int k = n+1 ; k < n+longueur ; k++) { IHM.placerBateau(IHM.grille2,"x", m, k); } x = 1; } if(b<n) { for(int k = n-1 ; k > n-longueur ; k--) { IHM.placerBateau(IHM.grille2,"x", m, k); } x = 2; } } if(b == n) { if(a>m) { for(int k = m+1 ; k < m+longueur ; k++) { IHM.placerBateau(IHM.grille2,"x", k, n); } x = 3; } if(a<m) { for(int k = m-1 ; k > m-longueur ; k--) { IHM.placerBateau(IHM.grille2,"x", k, n); } x = 4; } } if(m+longueur-1 < IHM.grille2.getRowCount() && x!=3 && IHM.grille2.getValueAt(m+longueur-1, n)!= "x") { IHM.placerBateau(IHM.grille2,"", m+longueur-1 , n); } if(m-longueur+1 > 0 && x!=4 && IHM.grille2.getValueAt(m-longueur+1, n)!= "x") { IHM.placerBateau(IHM.grille2,"", m-longueur+1 , n); } if(n+longueur-1 < IHM.grille2.getColumnCount() && x!=1 && IHM.grille2.getValueAt(m, n+longueur-1)!= "x") { IHM.placerBateau(IHM.grille2,"", m , n+longueur-1); } if(n-longueur+1 > 0 && x!=2 && IHM.grille2.getValueAt(m, n-longueur+1)!= "x") { IHM.placerBateau(IHM.grille2,"", m , n-longueur+1); } longueur++; IHM.log.append("OK\n"); if(longueur == 3) IHM.log.append("Placez le sous-marin (3 cases).\n"); if(longueur == 4) IHM.log.append("Placez le contre-torpilleur (4 cases).\n"); if(longueur == 5) IHM.log.append("Placez le croiseur (5 cases).\n"); if(longueur == 6) IHM.log.append("Placez le porte-avion (6 cases).\n"); if(longueur == 7) IHM.log.append("Cliquez n'importe où pour continuer.\n"); p = 0; } else { IHM.grille2.setValueAt("", m, n); if(m+longueur-1< IHM.grille2.getRowCount()) { if(IHM.grille2.getValueAt(m+longueur-1, n)!="x") IHM.placerBateau(IHM.grille2,"", m+longueur-1, n); } if(m-longueur+1>0) { if(IHM.grille2.getValueAt(m-longueur+1, n)!="x") IHM.placerBateau(IHM.grille2,"", m-longueur+1, n); } if(n+longueur-1< IHM.grille2.getColumnCount()) { if(IHM.grille2.getValueAt(m, n+longueur-1)!="x") IHM.placerBateau(IHM.grille2,"", m, n+longueur-1); } if(n-longueur+1>0) { if(IHM.grille2.getValueAt(m, n-longueur+1)!="x") IHM.placerBateau(IHM.grille2,"", m, n-longueur+1); } p = 0; } break; } } } } }
public static void placerBateau(JTable grille, String s, int a, int b) { grille.setValueAt(s, a, b); }