diff --git b/demo/pom.xml a/demo/pom.xml
new file mode 100644
index 0000000..9afcabe
--- /dev/null
+++ a/demo/pom.xml
@@ -0,0 +1,75 @@
+
+
+
+ 4.0.0
+
+ generala
+ demo
+ 1
+
+ demo
+
+ http://www.example.com
+
+
+ UTF-8
+ 1.7
+ 1.7
+
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+
+
+
+
+
+
+ maven-clean-plugin
+ 3.1.0
+
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ maven-compiler-plugin
+ 3.8.0
+
+
+ maven-surefire-plugin
+ 2.22.1
+
+
+ maven-jar-plugin
+ 3.0.2
+
+
+ maven-install-plugin
+ 2.5.2
+
+
+ maven-deploy-plugin
+ 2.8.2
+
+
+
+ maven-site-plugin
+ 3.7.1
+
+
+ maven-project-info-reports-plugin
+ 3.0.0
+
+
+
+
+
diff --git b/demo/src/main/java/generala/Dado.java a/demo/src/main/java/generala/Dado.java
new file mode 100644
index 0000000..9658c7e
--- /dev/null
+++ a/demo/src/main/java/generala/Dado.java
@@ -0,0 +1,33 @@
+package generala;
+
+import java.util.Arrays;
+
+public class Dado {
+
+ private int[] dadosActuales = new int[5];
+
+ public Dado() {
+
+ }
+
+ // ------------ Metodos ------------
+ public int[] getDados() {
+ return dadosActuales;
+ }
+
+ public void setDados(int[] dadosActualizados) {
+ this.dadosActuales = dadosActualizados;
+ }
+
+ public int[] generarNumerosAleatorios() {
+ // Funcion que genera numeros aleatorios
+ int[] dadosAleatorios = new int[5];
+ for (int i = 0; i < 5; i++) {
+ int randomNumber = (int) Math.floor((Math.random() * (5 + 1 - 1)) + 1);
+ dadosAleatorios[i] = randomNumber;
+ }
+
+ Arrays.sort(dadosAleatorios);
+ return dadosAleatorios;
+ }
+}
diff --git b/demo/src/main/java/generala/Generala.java a/demo/src/main/java/generala/Generala.java
new file mode 100644
index 0000000..f024820
--- /dev/null
+++ a/demo/src/main/java/generala/Generala.java
@@ -0,0 +1,102 @@
+package generala;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Scanner;
+import java.io.File;
+
+public class Generala {
+ // ESTA ES LA FUNCIÓN QUE HAY QUE IMPLEMENTAR
+// TAMBIÉN PUEDEN AGREGAR OTRAS FUNCIONES y/o CLASES
+// QUE NECESITEN PARA RESOLVER EL EJERCICIO DE LA
+// MANERA MÁS ORDENADA POSIBLE
+
+String jugada(String dados) {
+ // Este metodo recibe un String el cual lo utilizamos en el Switch, dependiendo de que sea elvalor del
+ // string se ejecutara uno u otro caso
+ switch (dados) {
+ case "GENERALA" : {
+ System.out.println("GENERALA");
+ return "GENERALA";
+ }
+ case "POKER" : {
+ System.out.println("POKER");
+ return "POKER";
+ }
+ case "FULL" : {
+ System.out.println("FULL");
+ return "FULL";
+ }
+ case "ESCALERA" : {
+ System.out.println("ESCALERA");
+ return "ESCALERA";
+ }
+ default : {
+ System.out.println("NADA");
+ return "NADA";
+ }
+ }
+
+}
+// Ustedes pueden ignorar esto
+
+String[] jugadas(String[] losdados) {
+ String[] ret = new String[losdados.length];
+ int i = 0;
+ for (String dados : losdados) {
+ ret[i] = this.jugada(dados);
+ i++;
+ }
+ return ret;
+}
+// Ustedes pueden ignorar esto
+
+static String[] processBatch(String fileName)
+ throws Exception {
+ Scanner sc = new Scanner(new File(fileName));
+ List lines = new ArrayList();
+ while (sc.hasNextLine()) {
+ lines.add(sc.nextLine());
+ }
+ return lines.toArray(new String[0]);
+}
+
+public static void main(String[] args)
+ throws Exception {
+ Generala g = new Generala();
+ /* IGNORAR PORQUE ESTO NO SE VA A EJECUTAR PARA USTEDES */
+ if (args.length > 0) {
+ String[] jugadas = processBatch(args[0]);
+ String resultados[] = g.jugadas(jugadas);
+ for (String res : resultados) {
+ System.out.println(res);
+ }
+ return;
+ }
+
+ // ESTO SI SE EJECUTA PARA USTEDES
+ // -----------------------------------------------------
+ // Generar los numeros aleatorios
+ // Instanciamos el objeto Dadopara utilizar sus metodos
+ Dado dados1 = new Dado();
+ // En el metodo "setDados" modficamos el valor actual de la variable; pasandole
+ // como argumento el objeto "dados1" con su metodo "generarNumerosAleatorios"
+ // "generarNumerosAleatorios" devolvera un array de enteros con numeros aleatorios
+ dados1.setDados(dados1.generarNumerosAleatorios());
+ // Obtenemos los dados aleatorios y los guardamos en el array "dadosAleatorios"
+ int[] dadosAleatorios = dados1.getDados();
+
+ // Se imprimen los dados para poder comprar con el resultado arrojado luego
+ for (int i = 0; i < dadosAleatorios.length; i++) {
+ System.out.print(" [" + dadosAleatorios[i] + "] ");
+ }
+
+ //Instanciamos el objeto "jugada1" para ejecutar las comprobaciones
+ Jugada jugada1 = new Jugada();
+ //Llamamos al metodo tiro pasandole como argumento los dados que se generaron
+ jugada1.tiro(dadosAleatorios);
+ //"g" es un objeto de la clase Generala que ejecutara el metodo jugada.
+ //Le paso como parametro el string de la variabe de la clase Jugada
+ g.jugada(jugada1.getJugada1());
+}
+}
diff --git b/demo/src/main/java/generala/Jugada.java a/demo/src/main/java/generala/Jugada.java
new file mode 100644
index 0000000..2e14d2b
--- /dev/null
+++ a/demo/src/main/java/generala/Jugada.java
@@ -0,0 +1,107 @@
+package generala;
+
+public class Jugada {
+
+ // Instanciamos la variable "jugada" como "NADA"; porque al ejecutarse los metodos de comprobacion, si ninguno actualiza esta
+ // variable con su respectivo valor como "GENERALA", "POKER", etc. Significa que no cumplio con ninguna de las jugadas y debe
+ // quedarse como "NADA"
+ private String jugada1 = "NADA";
+
+ //Constructor para instanciar un objeto Jugada y usar sus metodos
+ public Jugada() {
+
+ }
+
+ public String getJugada1() {
+ // retorna la variable de instancia actual
+ return this.jugada1;
+ }
+
+ public void setJugada1(String jugada1) {
+ // Modifica la variable de instancia actual con el parametro que se le pase
+ this.jugada1 = jugada1;
+ }
+
+ // ------ Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "GENERALA" ------
+ public void generala(int[] dados) {
+ int contador = 0;
+ 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
+ // el contador aumenta en uno
+ if (dados[i] == dados[i + 1]) {
+ contador++;
+ }
+ }
+ // Si el contador llego a 4 es porque todas las comparaciones entre dados fueron iguales
+ // Entonces se actualiza la variable de instancia
+ if (contador == 4) {
+ setJugada1("GENERALA");
+ }
+ }
+
+ // ------ Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "POKER" ------
+ 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
+ int contador = 0;
+ 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
+ // Una seria el numero menor al principio y otra el numero mayor al final
+ // En los dos casos los numeros en la posicion 1, 2, 3 son iguales
+ // por eso se realiza la comprobacion ademas de que el contador sea 3
+ // array1 = [ 4, 5, 5, 5, 5 ]
+ // array2 = [ 4, 4, 4, 4, 5 ]
+ if (contador == 3 && dados[1] == dados[2] && dados[2] == dados[3]) {
+ setJugada1("POKER");
+ }
+ }
+
+ // ------ Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "FULL" ------
+ 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
+ int contador = 0;
+ 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
+ // El numero en la posicion 2 es diferente al de la posicion anterior
+ // y tambien puede ser diferente a de la posicion siguiente
+ // array1 = [ 4, 4, 5, 5, 5 ]
+ // array2 = [ 4, 4, 4, 5, 5 ]
+ if (contador == 3 && dados[1] != dados[2]) {
+ setJugada1("FULL");
+ } else if (contador == 3 && dados[2] != dados[3]) {
+ setJugada1("FULL");
+ }
+ }
+
+ // ------ Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "ESCALERA" ------
+ public void escalera(int[] dados) {
+ int contador = 0;
+ for (int i = 0; i < dados.length - 1; i++) {
+ //Si el dado en la posicion [0] es 1 y le sumas 1, el resultado debe ser igual al dado de la posicion siguiente
+ if (dados[i] + 1 == dados[i + 1]) {
+ contador++;
+ }
+ }
+ if (contador == 4) {
+ this.jugada1 = "ESCALERA";
+ }
+ }
+
+ // ------ Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "POKER" ------
+ public void tiro(int[] dados) {
+ // Se ejecuta todos los metodos de comprobacion
+ generala(dados);
+ poker(dados);
+ full(dados);
+ escalera(dados);
+ }
+}
diff --git b/demo/src/test/java/generala/AppTest.java a/demo/src/test/java/generala/AppTest.java
new file mode 100644
index 0000000..9cd8e3b
--- /dev/null
+++ a/demo/src/test/java/generala/AppTest.java
@@ -0,0 +1,20 @@
+package generala;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+{
+ /**
+ * Rigorous Test :-)
+ */
+ @Test
+ public void shouldAnswerWithTrue()
+ {
+ assertTrue( true );
+ }
+}
diff --git b/demo/target/classes/generala/Dado.class a/demo/target/classes/generala/Dado.class
new file mode 100644
index 0000000..b7b087c
Binary files /dev/null and a/demo/target/classes/generala/Dado.class differ
diff --git b/demo/target/classes/generala/Generala.class a/demo/target/classes/generala/Generala.class
new file mode 100644
index 0000000..31f8cd6
Binary files /dev/null and a/demo/target/classes/generala/Generala.class differ
diff --git b/demo/target/classes/generala/Jugada.class a/demo/target/classes/generala/Jugada.class
new file mode 100644
index 0000000..20a087a
Binary files /dev/null and a/demo/target/classes/generala/Jugada.class differ
diff --git b/demo/target/test-classes/generala/AppTest.class a/demo/target/test-classes/generala/AppTest.class
new file mode 100644
index 0000000..54c3428
Binary files /dev/null and a/demo/target/test-classes/generala/AppTest.class differ