-
Notifications
You must be signed in to change notification settings - Fork 0
/
MaterialExtraEjercicio22.java
103 lines (92 loc) · 3.46 KB
/
MaterialExtraEjercicio22.java
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/*
* Material Extra Ejercicio # 22
Construya un programa que lea 5 palabras de mínimo 3 y hasta 5 caracteres y, a
medida que el usuario las va ingresando, construya una “sopa de letras para niños”
de tamaño de 20 x 20 caracteres. Las palabras se ubicarán todas en orden
horizontal en una fila que será seleccionada de manera aleatoria. Una vez
concluida la ubicación de las palabras, rellene los espacios no utilizados con un
número aleatorio del 0 al 9. Finalmente imprima por pantalla la sopa de letras
creada.
Nota: Para resolver el ejercicio deberá investigar cómo se utilizan las siguientes
funciones de Java substring(), Length() y Math.random().
*/
package egg_ejercicios;
import java.util.Scanner;
import java.util.Objects;
/**
*
* @author WALTER GOMEZ
*/
public class MaterialExtraEjercicio22 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner(System.in).useDelimiter("\n");
// DecimalFormat df = new DecimalFormat("###.##");
String palabra;
String[][] sopa = new String[20][20];
rellenarSopaCeros(sopa);
for (int i = 0; i < 5; i++) {
System.out.println("Ingrese una palabra entre 3 a 5 caracteres");
palabra = "tres";
// while (palabra.length() > 5 || palabra.length() < 3) {
// System.out.print("Ingreso una palabra invalida, por favor ingrese una palabra
// entre 3 a 5 caracteres");
// palabra = scan.next();
// }
rellenarSopa(sopa, palabra);
}
rellenarSopaAleatorio(sopa);
escribirSopa(sopa);
}
public static int generarFilaColumna(int max) {
return (int) (Math.random() * max);
}
public static void rellenarSopa(String[][] matriz, String palabra) {
boolean vacio = true;
int maximo, fila, columna;
do {
maximo = (int) (20 - palabra.length());
fila = generarFilaColumna(20);
columna = generarFilaColumna(maximo);
for (int i = 0; i < palabra.length(); i++) {
if (matriz[fila][(int) (columna + i)] != null) {
if (!matriz[fila][(int) (columna + i)].equals("0")) {
vacio = false;
}
}
}
if (vacio) {
break;
}
} while (!vacio);
for (int j = 0; j < palabra.length(); j++) {
matriz[fila][columna + j] = palabra.substring(j, (j + 1));
}
}
public static void escribirSopa(String[][] matriz) {
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
System.out.print(matriz[i][j] + " ");
}
System.out.println("");
}
}
public static void rellenarSopaCeros(String[][] matriz) {
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
matriz[i][j] = "0";
}
}
}
public static void rellenarSopaAleatorio(String[][] matriz) {
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
if (matriz[i][j].equals("0")) {
matriz[i][j] = Integer.toString((int) (Math.random() * 10));
}
}
}
}
}