Jeu de Mémoire en Java : Code Source
Jeu de Mémoire en Java : Code Source
------------------------------------------------------------------------------------------------------------
CODE DU TABLEAU SWING
------------------------------------------------------------------------------------------------------------
importer [Link].*;
import [Link].*;[Link](null, "Tu es le joueur 2 !!",
Memorama en Java
import [Link].*;
import [Link];
importer [Link].*;
classe publique Memorama étend Frame implémente MouseListener, MouseMotionListener
{
private int NE = 0;//pour compter le nombre de clics que le joueur fait et le nombre de
erreurs
private int NC = 0;
private int k;
private int l;
private int Arriba = 0; // pour savoir quelles cartes sont face visible
private int carta1 = 0;
private int carta2 = 0;
private final int EX = 100;//EX et EY établissent la taille des graphiques
private final int EY = 100;
private int mcy, mcx;//Variables avec lesquelles nous connaissons la position et le mouvement du
souris
int privé mmx, mmy;
public int o;//la variable o y p guardan temporalmente las posiciones de la segunda carta
au moment d'être retournée
public int p;
public Memorama() {
int i, j, k, l;
addMouseListener(this); //Nous écoutons les événements de la souris
addMouseMotionListener(this); // y des mouvements de souris
setSize(1024, 768);//**********************
new boolean[4][4];
pour (i = 0; i < 4; i++) {
pour (j = 0; j < 4; j++) {
arriba[i][j] = faux;
}
}
pour (k = 1; k <= 8; k++) { // Place les cartes de manière aléatoire, effectue ce processus
jusqu'à remplir la matrice
pour (l = 1; l <= 2; l++) {//c'est ainsi que les paires sont formées en plaçant chacune 2 fois mais
dans une position différente
faire {
i = [Link](4);
j = [Link](4);
} pendant que (tablero[i][j] != 0);
tablero[i][j] = k;
}
}
imagenOculta = new ImageIcon(getClass().getResource("[Link]"));//nous chargeons la
images
new ImageIcon(getClass().getResource("[Link]"));
new ImageIcon(getClass().getResource("[Link]"));
imagen2 = new ImageIcon(getClass().getResource("[Link]"));
imagen3 = new ImageIcon(getClass().getResource("[Link]"));
imagen4 = new ImageIcon(getClass().getResource("[Link]"));
new ImageIcon(getClass().getResource("[Link]"));
new ImageIcon(getClass().getResource("[Link]"));
imagen7 = new ImageIcon(getClass().getResource("[Link]"));
imagen8 = new ImageIcon(getClass().getResource("[Link]"));
setUndecorated(true);
setResizable(false);
setBackground(new Color(130, 158, 16));//Partie du Constructeur
setTitle(" MEMORAMA ");
//sortir
[Link]([Link]);
[Link](600, 250, 150, 30);
[Link]([Link]);
[Link](599, 310, 150, 30);
}
} sinon {
NE = NE + 1;
[Link](null, "Aucune paire ne se forme..!!",
Memorama en Java
Arriba = 0;
carta1 = 0;
carta2 = 0;
arriba[i][j] = faux;
faux;
}
}
} sinon {
arriba[i][j] = false;//Cata oculta
}//end of the comparison
} // fin de haut
}//fin de l'if de mcx mcy
//termine l'application
si (mcx >= 600 && mcx <= 750 && mcy >= 250 && mcy <= 280) {
[Link](0);
}
int i, j, k, l;
essayer
{
rmi://+nombre+/Memorama
h =(MemoInt) [Link](URLRegistro);
[Link](en haut);
}// fin essayer
attraper (Exception exc)
{}
}
public boolean mt()
{
essayer
{
rmi://
h =(MemoInt) [Link](URLRegistro);
si([Link]()==4){arriba=[Link](arriba2);repaint();return true;}
}// fin try
attraper (Exception exc)
{}actualiser();retourner faux ;
}
public void dibCuadro(Graphics g, int px, int py, int v) {
switch (v) {
cas 0 :
[Link]([Link](), px, py, 50, 50, null);
pause;
cas 1 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 2 :
[Link]([Link](), px, py, 50, 50, null);
casser;
cas 3 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 4 :
[Link]([Link](), px, py, 50, 50, null);
pause;
cas 5 :
[Link]([Link](), px, py, 50, 50, null);
pause;
cas 6 :
[Link]([Link](), px, py, 50, 50, null);
pause;
cas 7 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 8 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 9 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 10 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 11 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 12 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 13 :
[Link]([Link](), px, py, 50, 50, null);
pause;
cas 14 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 15 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 16 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 17 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 18 :
[Link]([Link](), px, py, 50, 50, null);
pause;
cas 19 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 20 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 21 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 22 :
[Link]([Link](), px, py, 50, 50, null);
pause;
cas 23 :
[Link]([Link](), px, py, 50, 50, null);
pause;
cas 24 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 25 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 26 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 27 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 28 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 29 :
[Link]([Link](), px , py, 50, 50, null);
casser;
cas 30 :
[Link]([Link](), px, py, 50, 50, null);
pause;
cas 31 :
[Link]([Link](), px , py, 50, 50, null);
pause;
cas 32 :
[Link]([Link](), px, py, 50, 50, null);
pause;
}
}
public void paint(Graphics g) {
[Link]([Link](), 0, 0, 1024, 768, null);
[Link]([Link]);//Couleur des lettres
[Link](new Font("Arial", [Link], 22));//Type de lettres
! !
[Link]([Link]); //Un autre couleur
! !
[Link]([Link]);
int i, j;
pour (i = 0; i < 8; i++) {
pour (j = 0; j < 8; j++) {
si (arriba[i][j]) {
dibCuadro(g, CX + j * EX, CY + i * EY, tableau[i][j]);
} sinon {
dibCuadro(g, CX + j * EX, CY + i * EY, 0);
}
}
}
[Link]([Link]);
[Link](600, 250, 150, 30);
[Link](new Font("Arial", [Link], 16));
[Link]([Link]);
Quitter le Jeu
[Link]([Link]);
}
public void mouseClicked(MouseEvent me) {
si(mt()){
si (comprueba() == vrai) {
[Link](null, "Fin du Jeu..!!\nVotre nombre de paires ")
+couples, "Memorama en Java", JOptionPane.PLAIN_MESSAGE);
}
NC = NC + 1;//nombre de clics
mcx = [Link]();//prend la position du clic en x
mcy = [Link](); // prend la position du clic en y
int i, j;
si ((mcx >= CX) && (mcy >= CY) && (mcx <= (CX + 8 * EX)) && (mcy <= (CY +
8 * EY)) /*&&!pausa*/) {
i = (mcy - CY) / EY; j = (mcx - CX) / EX;
si (arriba[i][j] != vrai && parejas <= 15) {
si (!arriba[i][j]) {
Arriba = Arriba + 1;
arriba[i][j] = vrai; arri(); repaint();//Retourne la carte face visible
si (Arriba == 1) {
carta1 += tableau[i][j];o = i;p = j;
}
si (Arriba == 2) {
carta2 += tableau[i][j];
//compare the value of the two cards if they are equal determine that it is a
couple
si (carta1 == carta2) {
Formant une paire
Memorama en Java
Arriba = 0;carta1 = 0;carta2 = 0;arriba[i][j] = true;arriba[o][p] = true;
actualise();redessine();
couples = couples + 1;
si (comprueba() == vrai) {
[Link](null, "Fin du Jeu..!!\nVotre nombre de paires")
trouvées : "+couples, "Memorama en Java", JOptionPane.PLAIN_MESSAGE);
}
} sinon {
NE = NE + 1;
[Link](null, "Aucune forme de couple..!!",
Memorama en Java
0
arriba[i][j] = faux;
arriba[o][p] = faux;;
arri();actualiza();repaint();
essayer {
}else{
Ce n'est pas ton tour..!!
JOptionPane.PLAIN_MESSAGE);
}
public void sourisDéplacée(MouseEvent me) {}
public void sourisAppuyée(MouseEvent e) {}
public void sourisRelâchée(MouseÉvénement e) {}
public void sourisEntree(MouseEvent me) {}
public void sourisSortie(MouseEvent me) {}
public void mouseDragged(MouseEvent e) {}
classe à nouveau étend TimerTask {
public void run() {
si(!mt()){
1
repeindre();
}else{
si(t==1){
[Link](null, "Maintenant, c'est ton tour..!!", "Memorama en
Java" , JOptionPane.PLAIN_MESSAGE);
t=0;
}
}
}
}
public static void main(String args[]) throws RemoteException
{
Client4 Client4 = new Client4(args[0]);
} // fin main
} // fin de la classe
------------------------------------------------------------------------------------------------------------
CODE DU SERVEUR
------------------------------------------------------------------------------------------------------------
importer [Link] ;
importer [Link].*;
import [Link];
importer [Link];
import [Link].*;
importer [Link].*;
classe publique Serveur
{
public static void main(String args[])
{
Chaine URLRegistro;
essayer
{
//[Link](1099);
MemoImp objExporté = new MemoImp();
String hôte = [Link]().getHostName();
rmi://"+args[0]+"/Memorama";
[Link](URLRegistro, objExportado);
Serveur Memorama prêt.
} // fin try
attraper (Exception excr)
{
[Link]("Exception dans [Link]: " + excr);
} // fin catch
} // fin mai
} // fin de la classe
------------------------------------------------------------------------------------------------------------
CODE DE L'INTERFACE
------------------------------------------------------------------------------------------------------------
import [Link].*;
public interface MemoInt étend Remote
{
public int[][] tab( )throws [Link];
public boolean[][] arr( boolean ar[][])throws [Link];
public int turno() throws [Link];
public void tourner() throws [Link];
public void arrib( boolean ar[][]) throws RemoteException;
}
------------------------------------------------------------------------------------------------------------
CODE DE L'IMPLEMENTATION DE L'INTERFACE
-----------------------------------------------------------------------------------------------------------
importer [Link].*;
import [Link].*;
importer [Link].*;
class publique MemoImp étend UnicastRemoteObject
implémente MemoInt
{
int i,j,k,l,t;
Random r = new Random();
int tableau[][] = {{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0}
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0}
{0, 0, 0, 0, 0, 0, 0, 0}
{0, 0, 0, 0, 0, 0, 0, 0}
{0, 0, 0, 0, 0, 0, 0, 0}
{0, 0, 0, 0, 0, 0, 0, 0}};
boolean arriba[][] = {{faux, faux, faux, faux, faux, faux, faux, faux},
{false, false, false, false,false, false, false, false},
{false, false, false, false,false, false, false, false},
{false, false, false, false,false, false, false, false},
{faux, faux, faux, faux, faux, faux, faux, faux}
{false, false, false, false,false, false, false, false},
{faux, faux, faux, faux, faux, faux, faux, faux}
{faux, faux, faux, faux, faux, faux, faux, faux}};
public MemoImp( ) throws RemoteException
{
super( );
t=1;
pour (k = 1 ; k <= 32 ; k++)
//Place the cards randomly, perform this process until the matrix is filled
pour (l = 1; l <= 2; l++)
//Ainsi se forment les couples en plaçant chacun 2 fois mais à des positions différentes
faire
{
i = [Link](8);
j = [Link](8);
} pendant que (tablero[i][j] != 0);
tablero[i][j] = k;
}
}
}
public int[][] tab( )throws RemoteException
{
retourner tableau;
}
public boolean[][] arr( boolean ar[][])throws RemoteException
{
pour(int x =0;x<8;x++)
{
pour(int y=0;y<8;y++)
{
si(ar[x][y]||arriba[x][y]){arriba[x][y]=vrai;}
}
}
retourner en haut;
}
public void arrib( boolean ar[][])throws RemoteException
{
pour(int x = 0; x < 8; x++)
{
pour(int y=0;y<8;y++)
{
si(ar[x][y]){arriba[x][y]=true;}else{arriba[x][y]=false;}
}
}
//retourner en haut;
}