optimizando funcion de comprobacion

parent 828c442e
...@@ -23,7 +23,7 @@ public class Dado { ...@@ -23,7 +23,7 @@ public class Dado {
// Funcion que genera numeros aleatorios // Funcion que genera numeros aleatorios
int[] dadosAleatorios = new int[5]; int[] dadosAleatorios = new int[5];
for (int i = 0; i < 5; i++) { for (int i = 0; i < 5; i++) {
int randomNumber = (int) Math.floor((Math.random() * (5 + 1 - 1)) + 1); int randomNumber = (int) Math.floor((Math.random() * (6 + 1 - 1)) + 1);
dadosAleatorios[i] = randomNumber; dadosAleatorios[i] = randomNumber;
} }
......
...@@ -12,6 +12,9 @@ public class Jugada { ...@@ -12,6 +12,9 @@ public class Jugada {
} }
// ------------------------------------------------------------------------
// Metodos Auxiliares
public String getJugada1() { public String getJugada1() {
// retorna la variable de instancia actual // retorna la variable de instancia actual
return this.jugada1; return this.jugada1;
...@@ -22,8 +25,8 @@ public class Jugada { ...@@ -22,8 +25,8 @@ public class Jugada {
this.jugada1 = jugada1; this.jugada1 = jugada1;
} }
// ------ Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "GENERALA" ------ public int comprobadorDeJugadas(int[] dados)
public void generala(int[] dados) { {
int contador = 0; int contador = 0;
for (int i = 0; i < dados.length - 1; i++) { for (int i = 0; i < dados.length - 1; i++) {
// En caso de que el dado en la posicion "i" sea igual al dado en la posicion siguiente // En caso de que el dado en la posicion "i" sea igual al dado en la posicion siguiente
...@@ -32,6 +35,16 @@ public class Jugada { ...@@ -32,6 +35,16 @@ public class Jugada {
contador++; contador++;
} }
} }
return contador;
}
// ------------------------------------------------------------------------
// Metodos Auxiliares
// ------ Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "GENERALA" ------
public void generala(int[] dados) {
int contador = comprobadorDeJugadas(dados);
// Si el contador llego a 4 es porque todas las comparaciones entre dados fueron iguales // Si el contador llego a 4 es porque todas las comparaciones entre dados fueron iguales
// Entonces se actualiza la variable de instancia // Entonces se actualiza la variable de instancia
if (contador == 4) { if (contador == 4) {
...@@ -42,12 +55,7 @@ public class Jugada { ...@@ -42,12 +55,7 @@ public class Jugada {
// ------ Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "POKER" ------ // ------ Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "POKER" ------
public void poker(int[] dados) { public void poker(int[] dados) {
// IMPORTANTE: El metodo poker funciona igual que GENERALA con la diferencia de que el contador debe llegar a 3 para ser POKER // IMPORTANTE: El metodo poker funciona igual que GENERALA con la diferencia de que el contador debe llegar a 3 para ser POKER
int contador = 0; int contador = comprobadorDeJugadas(dados);
for (int i = 0; i < dados.length - 1; i++) {
if (dados[i] == dados[i + 1]) {
contador++;
}
}
// Al estar el array ordenado de mayor a menor solo hay 2 opciones de POKER // Al estar el array ordenado de mayor a menor solo hay 2 opciones de POKER
// Una seria el numero menor al principio y otra el numero mayor al final // Una seria el numero menor al principio y otra el numero mayor al final
...@@ -55,7 +63,9 @@ public class Jugada { ...@@ -55,7 +63,9 @@ public class Jugada {
// por eso se realiza la comprobacion ademas de que el contador sea 3 // por eso se realiza la comprobacion ademas de que el contador sea 3
// array1 = [ 4, 5, 5, 5, 5 ] // array1 = [ 4, 5, 5, 5, 5 ]
// array2 = [ 4, 4, 4, 4, 5 ] // array2 = [ 4, 4, 4, 4, 5 ]
if (contador == 3 && dados[1] == dados[2] && dados[2] == dados[3]) { if (contador == 3 && dados[0] != dados[1] && dados[1] == dados[2] && dados[2] == dados[3] && dados[3] == dados[4] ||
dados[0] == dados[1] && dados[1] == dados[2] && dados[2] == dados[3] && dados[3] != dados[4]
) {
setJugada1("POKER"); setJugada1("POKER");
} }
} }
...@@ -63,21 +73,16 @@ public class Jugada { ...@@ -63,21 +73,16 @@ public class Jugada {
// ------ Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "FULL" ------ // ------ Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "FULL" ------
public void full(int[] dados) { public void full(int[] dados) {
// IMPORTANTE: El metodo "full" funciona igual que GENERALA con la diferencia de que el contador debe llegar a 3 para ser POKER // IMPORTANTE: El metodo "full" funciona igual que GENERALA con la diferencia de que el contador debe llegar a 3 para ser POKER
int contador = 0; int contador = comprobadorDeJugadas(dados);
for (int i = 0; i < dados.length - 1; i++) {
if (dados[i] == dados[i + 1]) {
contador++;
}
}
// Al estar el array ordenado de mayor a menor solo hay 2 opciones de FULL // Al estar el array ordenado de mayor a menor solo hay 2 opciones de FULL
// El numero en la posicion 2 es diferente al de la posicion anterior // El numero en la posicion 2 es diferente al de la posicion anterior
// y tambien puede ser diferente a de la posicion siguiente // y tambien puede ser diferente a de la posicion siguiente
// array1 = [ 4, 4, 5, 5, 5 ] // array1 = [ 4, 4, 5, 5, 5 ]
// array2 = [ 4, 4, 4, 5, 5 ] // array2 = [ 4, 4, 4, 5, 5 ]
if (contador == 3 && dados[1] != dados[2]) { if (contador == 3 && dados[0] == dados[1] && dados[1] != dados[2] && dados[2] == dados[3] && dados[3] == dados[4] ||
setJugada1("FULL"); dados[0] == dados[1] && dados[1] == dados[2] && dados[2] != dados[3] && dados[3] == dados[4])
} else if (contador == 3 && dados[2] != dados[3]) { {
setJugada1("FULL"); setJugada1("FULL");
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment