Skip to content

Commit c5620ca

Browse files
committed
Added Actividad11 - Unit 5
1 parent 5953469 commit c5620ca

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package unit05.Actividad11;
2+
3+
import unit05.Actividad09.Actividad9;
4+
5+
import java.util.Arrays;
6+
import java.util.Scanner;
7+
8+
9+
/*
10+
Crear un juego "la cámara secreta" consiste en abrir una cámara mediante su combinación secreta
11+
que está formada por una combinación de dígitos del 1 al 5. El jugador especificará cuál es la
12+
longitud de la combinación; a mayor longitud mayor dificultad. La combinación será generada de
13+
forma aleatoria que el usuario tendrá que acertar. En cada intento se muestra como pista para
14+
cada dígito si es mayor, menor o igual
15+
*/
16+
public class Actividad11 {
17+
public static void main(String[] args) {
18+
int longitudCombinacion,numeroIntroducido;
19+
int[] numeroIntroducidoArray;
20+
longitudCombinacion = Actividad9.getInt("Ingrese la logitud de la combinación deseada: ");
21+
int[] combinacionGenerada = generarCombinacion(longitudCombinacion);
22+
int combinacionMinima = generarCombinacionMinima(longitudCombinacion); // Generamos la combinación Minima
23+
int combinacionMaxima = generarCombinacionMaxima(longitudCombinacion); // Generamos la combinación Máxima
24+
25+
numeroIntroducido = getInt("Introduce la combinacion de "+longitudCombinacion+" cifras: ",combinacionMinima,combinacionMaxima);
26+
numeroIntroducidoArray = conversorArray(numeroIntroducido);
27+
28+
while (!Arrays.equals(combinacionGenerada,numeroIntroducidoArray)){
29+
mostrarPista(combinacionGenerada,numeroIntroducidoArray);
30+
numeroIntroducido = getInt("Introduce la combinacion de "+longitudCombinacion+" cifras: ",combinacionMinima,combinacionMaxima);
31+
numeroIntroducidoArray = conversorArray(numeroIntroducido);
32+
}
33+
34+
System.out.println("¡Enhorabuena! Has acertado la combinación secreta.");
35+
}
36+
37+
private static void mostrarPista(int[] combinacionGenerada, int[] numeroIntroducidoArray) {
38+
for (int i = 0; i < combinacionGenerada.length; i++) {
39+
if (combinacionGenerada[i] > numeroIntroducidoArray[i]){
40+
System.out.println("El número "+numeroIntroducidoArray[i]+" es menor que el número secreto.");
41+
}else if (combinacionGenerada[i] < numeroIntroducidoArray[i]){
42+
System.out.println("El número "+numeroIntroducidoArray[i]+" es mayor que el número secreto.");
43+
}else {
44+
System.out.println("El número "+numeroIntroducidoArray[i]+" es igual que el número secreto.");
45+
}
46+
}
47+
}
48+
49+
private static int[] conversorArray(int numeroIntroducido) {
50+
int longitud = String.valueOf(numeroIntroducido).length();
51+
int[] array = new int[longitud];
52+
for (int i = 0; i < longitud; i++) {
53+
array[i] = Integer.parseInt(String.valueOf(String.valueOf(numeroIntroducido).charAt(i)));
54+
}
55+
return array;
56+
}
57+
58+
public static int[] generarCombinacion (int longitudCombinacion){
59+
final int MAX = 5;
60+
int[] combinacion = new int[longitudCombinacion];
61+
for (int i = 0; i < longitudCombinacion; i++) {
62+
combinacion[i] = (int) (Math.random()*MAX+1);
63+
}
64+
return combinacion;
65+
}
66+
public static int generarCombinacionMinima (int longitudCombinacion){
67+
String combinacionMinima = "";
68+
for (int i = 0; i < longitudCombinacion; i++) {
69+
combinacionMinima+="1";
70+
}
71+
return Integer.parseInt(combinacionMinima);
72+
}
73+
public static int generarCombinacionMaxima (int longitudCombinacion){
74+
String combinacionMinima = "";
75+
for (int i = 0; i < longitudCombinacion; i++) {
76+
combinacionMinima+="5";
77+
}
78+
return Integer.parseInt(combinacionMinima);
79+
}
80+
81+
public static int getInt(String mensaje, int minimo, int maximo) {
82+
Scanner sc = new Scanner(System.in);
83+
int numero;
84+
System.out.print(mensaje);
85+
do {
86+
while (!sc.hasNextInt()) {
87+
System.out.println("Ingrese un valor numérico.");
88+
System.out.print(mensaje);
89+
sc.nextLine();
90+
}
91+
numero = sc.nextInt();
92+
if (numero < minimo || numero > maximo) {
93+
System.out.println("Ingrese un valor entre "+minimo+" y "+maximo+".");
94+
System.out.print(mensaje);
95+
}
96+
} while (numero < minimo || numero > maximo);
97+
return numero;
98+
}
99+
}

0 commit comments

Comments
 (0)