Coucou! pour ceux que ca intéresse, voici le code source du jeu de la vie en java!
<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>
import java.util.* ;
import fsa.games.* ;
public class LifeModel extends BasicModel {
private int [][] M;
private int dim;
public LifeModel(int dim) {
this.dim = dim;
M = new int[dim][dim];
}
public void reset() {
for (int r=0; r<dim; r++)
for (int c=0; c<dim; c++)
M[r][c]=0;
}
public void generate() {
Vector etatV = new Vector();
int[][] etatT = new int [dim][dim]
IntArrayUtil.arraycopy(M, etatT);
IntArrayUtil.arraycopy(M, inter);
int count = 0;
for (int r=0; r<=dim-1; r++){
for (int c=0; c<=dim-1; c++){
int cplus=IntArrayUtil.plus(c,dim);
int rplus=IntArrayUtil.plus(r,dim);
int cmoins=IntArrayUtil.moins(c,dim);
int rmoins=IntArrayUtil.moins(r,dim);
count = inter[rplus][cplus]+inter[rplus][c]+inter[rplus][cmoins]
+inter[r][cmoins]+inter[r][cplus]+inter[rmoins][cmoins]
+inter[rmoins][cplus]+inter[rmoins][c];
if ((count == 3) || ((count == 2) && (inter[r][c] == 1))) {
coord = new Coordinate(r,c);
etatV.addElement(coord);
}
}
}
reset();
for (int i=0; i<etatV.size() ;i++){
int r = ((Coordinate)etatV.elementAt(i)).getRow();
int c = ((Coordinate)etatV.elementAt(i)).getColumn();
M[r][c] = 1;
}
LifeNotification(M, etatT);
}
public void configure(Coordinate coord) {
int r = coord.getRow();
int c = coord.getColumn();
if (M[r][c] == 0)
M[r][c] = 1;
else
M[r][c] = 0;
display(coord);
}
public void display(Coordinate coord) {
LifeNotifFromModel notif = new LifeNotifFromModel(coord);
notify(notif);
}
public void LifeNotification(int[][] tabI, int[][] tabF) {
for (int i=0; i<tabI.length; i++){
for (int j=0; j<tabI.length; j++){
if (tabI
[j] != tabF[j]){
Coordinate chgmt = new Coordinate (i,j);
display(chgmt);
}
}
}
}
}
<HR></BLOCKQUOTE>
si vous y comprenez pas trop et que vous voulez voir a quoi ca ressemble, cliquez ici!
(celui ci n'est pas de moi, faut pas pousser!!!)