Skip to content

Commit db01781

Browse files
mouredev#33-RESCATANDO A MICKEYINJAVA BY MohamedElderkaoui
1 parent 4b89269 commit db01781

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
import java.util.*;
2+
3+
public class MohamedElderkaoui{
4+
5+
public static void main(String[] args) {
6+
Laberinto.main(args);
7+
}
8+
}
9+
class Laberinto {
10+
11+
public static void main(String[] args) {
12+
final int SIZE = 6;
13+
char[][] laberinto = generarLaberinto(SIZE);
14+
int mickeyRow = 0;
15+
int mickeyCol = 0;
16+
int salidaRow = 0;
17+
int salidaCol = 0;
18+
19+
// Encuentra la posición inicial de Mickey y la salida
20+
for (int i = 0; i < SIZE; i++) {
21+
for (int j = 0; j < SIZE; j++) {
22+
if (laberinto[i][j] == 'M') {
23+
mickeyRow = i;
24+
mickeyCol = j;
25+
}
26+
if (laberinto[i][j] == 'S') {
27+
salidaRow = i;
28+
salidaCol = j;
29+
}
30+
}
31+
}
32+
33+
Scanner scanner = new Scanner(System.in);
34+
int maxMoves = 50; // Límite de movimientos
35+
int moves = 0;
36+
37+
while (moves < maxMoves) {
38+
mostrarLaberinto(laberinto, mickeyRow, mickeyCol);
39+
40+
if (mickeyRow == salidaRow && mickeyCol == salidaCol) {
41+
System.out.println("¡Felicidades! Mickey ha encontrado la salida.");
42+
break;
43+
}
44+
45+
System.out.print("¿Hacia dónde quieres moverte? (arriba/abajo/izquierda/derecha): ");
46+
String movimiento = scanner.nextLine().toLowerCase();
47+
48+
int nuevaFila = mickeyRow;
49+
int nuevaColumna = mickeyCol;
50+
51+
switch (movimiento) {
52+
case "arriba":
53+
nuevaFila--;
54+
break;
55+
case "abajo":
56+
nuevaFila++;
57+
break;
58+
case "izquierda":
59+
nuevaColumna--;
60+
break;
61+
case "derecha":
62+
nuevaColumna++;
63+
break;
64+
default:
65+
System.out.println("Movimiento no válido. Intenta de nuevo.");
66+
continue;
67+
}
68+
69+
if (esMovimientoValido(nuevaFila, nuevaColumna, laberinto)) {
70+
laberinto[mickeyRow][mickeyCol] = ' ';
71+
mickeyRow = nuevaFila;
72+
mickeyCol = nuevaColumna;
73+
laberinto[mickeyRow][mickeyCol] = 'M';
74+
moves++;
75+
} else {
76+
System.out.println("Movimiento no válido. Hay un obstáculo o estás fuera del laberinto.");
77+
}
78+
79+
System.out.println("Movimientos restantes: " + (maxMoves - moves));
80+
}
81+
82+
if (moves >= maxMoves) {
83+
System.out.println("¡Se acabaron los movimientos! Mickey no ha encontrado la salida.");
84+
}
85+
86+
scanner.close();
87+
}
88+
89+
private static char[][] generarLaberinto(int size) {
90+
char[][] laberinto = new char[size][size];
91+
Random rand = new Random();
92+
93+
// Inicializa el laberinto con celdas vacías
94+
for (int i = 0; i < size; i++) {
95+
for (int j = 0; j < size; j++) {
96+
laberinto[i][j] = ' ';
97+
}
98+
}
99+
100+
// Coloca los obstáculos y la salida de manera aleatoria
101+
int numObstaculos = size; // Número de obstáculos
102+
for (int i = 0; i < numObstaculos; i++) {
103+
int fila = rand.nextInt(size);
104+
int columna = rand.nextInt(size);
105+
if (laberinto[fila][columna] == ' ' && !(fila == 0 && columna == 0) && !(fila == size - 1 && columna == size - 1)) {
106+
laberinto[fila][columna] = 'O'; // Obstáculo representado por 'O'
107+
}
108+
}
109+
110+
// Coloca la salida en una posición fija
111+
int salidaFila = size - 1;
112+
int salidaColumna = size - 1;
113+
laberinto[salidaFila][salidaColumna] = 'S'; // Salida representada por 'S'
114+
115+
// Coloca a Mickey en una posición fija
116+
int mickeyFila, mickeyColumna;
117+
do {
118+
mickeyFila = rand.nextInt(size);
119+
mickeyColumna = rand.nextInt(size);
120+
} while (laberinto[mickeyFila][mickeyColumna] != ' ');
121+
122+
laberinto[mickeyFila][mickeyColumna] = 'M'; // Mickey representado por 'M'
123+
124+
return laberinto;
125+
}
126+
127+
private static void mostrarLaberinto(char[][] laberinto, int mickeyRow, int mickeyCol) {
128+
System.out.println("Laberinto:");
129+
for (int i = 0; i < laberinto.length; i++) {
130+
for (int j = 0; j < laberinto[i].length; j++) {
131+
if (i == mickeyRow && j == mickeyCol) {
132+
System.out.print('M' + " ");
133+
} else {
134+
System.out.print(laberinto[i][j] + " ");
135+
}
136+
}
137+
System.out.println();
138+
}
139+
}
140+
141+
private static boolean esMovimientoValido(int fila, int columna, char[][] laberinto) {
142+
return fila >= 0 && fila < laberinto.length && columna >= 0 && columna < laberinto[0].length && laberinto[fila][columna] != 'O';
143+
}
144+
}

0 commit comments

Comments
 (0)