Juego "Same" en java
Publicado por Diana (8 intervenciones) el 11/07/2017 01:09:16
Buenas estoy elaborando un juego de same (adjunto el link con un ejemplo del juego: http://www.factmonster.com/games/samegame.html)
Este consiste en que si los diamantes son del mismo color se van eliminando. El problema esta en que cuando quiero eliminar el grupo de diamantes del mismos color, siempre queda uno que no se elimina. Ejemplo: le doy click a un grupo que tiene 4 diamantes del mismo color y se eliminan 3. Que puedo hacer , ya revisé el código y no encuentro el error.
Este es el código:
Lo que ingresa por parametro son las coordenadas de la matriz en la que di el click. Ademas del dato que se encuentra en esta casilla que indica el color.
El contador lo que hace es contar el numero de diamantes que estoy comiendo, este esta inicializado en 1 al principio.
Este consiste en que si los diamantes son del mismo color se van eliminando. El problema esta en que cuando quiero eliminar el grupo de diamantes del mismos color, siempre queda uno que no se elimina. Ejemplo: le doy click a un grupo que tiene 4 diamantes del mismo color y se eliminan 3. Que puedo hacer , ya revisé el código y no encuentro el error.
Este es el código:
Lo que ingresa por parametro son las coordenadas de la matriz en la que di el click. Ademas del dato que se encuentra en esta casilla que indica el color.
El contador lo que hace es contar el numero de diamantes que estoy comiendo, este esta inicializado en 1 al principio.
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
public void f_recursiva (int px, int py, int color){
if (color!=-1){
matriz [px][py] = -1;
mat[px][py].setIcon(new ImageIcon("jpg/"+matriz[px][py]+".jpg"));
}
if (px < 9 && matriz[px+1][py] == color){
f_recursiva (px+1, py, color);
cont += 1;
}
if (px > 0 && matriz[px-1][py] == color){
f_recursiva (px-1, py, color);
cont += 1;
}
if (py < 9 && matriz[px][py+1] == color){
f_recursiva (px, py+1, color);
cont += 1;
}
if (py > 0 && matriz[px][py-1] == color){
f_recursiva (px, py-1, color);
cont += 1;
}
if (cont < 2){
matriz [px][py] = color;
}
}
Valora esta pregunta
0