Java - Haga un programa que maneje dos listas que contengan palabras de un juego

 
Vista:
sin imagen de perfil
Val: 9
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Haga un programa que maneje dos listas que contengan palabras de un juego

Publicado por José (2 intervenciones) el 22/04/2021 07:51:19
Haga un programa que maneje dos listas que contengan palabras de un juego de STOP. Para ello cada lista contiene las palabras que propone cada jugador, y que se leen por cónsola respectivamente. El programa debe establecer dos cosas: si hay palabras en ambas listas que no comiencen por la letra escogida para el juego, la cual se pedirá por cónsola previamente, y si hay alguna palabra presente en ambas listas, mostrando al final la puntuación obtenida por cada jugador (10 puntos por palabra que empiece por la letra escogida, 7 puntos menos del total por cada palabra que no empiece por la letra ya mencionada, y solo 5 puntos por cada palabra presente en ambas listas).
Un programa en el que se lea por cónsola los números de una partida de Bingo. El programa debe principalmente validar que a medida que se agregue un número el mismo no se encuentre repetido, además de que esté entre 1 y 75. Se le pide una función que me retorne la cantidad de números entre 31 y 45 leídos, y un procedimiento en el que me muestre si los números 8, 11, 23, 39, 46, 47, 60, 65 y 72 están entre los números agregados. Para efecto se asume que se agregarán una cantidad de 15 números.

¿Alguien puede ayudarme? por favor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Haga un programa que maneje dos listas que contengan palabras de un juego

Publicado por Kabuto (1385 intervenciones) el 25/04/2021 13:21:29
Para el primer ejercicio, es proponer una lista de temas y pedir a dos jugadores que, por separado, den una respuesta a cada tema.
Esas respuestas se guardan en listas separadas, para luego poder comparar y evaluar.
Si la respuesta no comienza por la letra establecida, se restan 7 puntos.
En cambio si la respuesta es correcta, se suman 10 puntos, excepto si ambos jugadores han dado la misma respuesta, entonces solo son 5 puntos.

Bien, los temas (Nombre propio, comida, ciudad, animal...) se pueden establecer mediante un array de String.
Con bucle se muestra cada tema y se recoge la respuesta del primer jugador.
Luego lo mismo con el segundo.

Tras esto ya se tienen las listas con las respuestas, solo quedaría recorrerlas y evaluar las respuestas para sumar o restar puntos a cada jugador, según corresponda.

El programa podría quedar así:

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
public class Stop {
	//Temas preguntas
	static final String[] temas = new String[] {"Nombre Propio", "Animal", "Comida", "Bebida",
			"Adjetivo", "Pais/Ciudad", "Famoso/Deportista"};
 
	//Listas con respuestas de los jugadores
	static ArrayList<String> respuestasJug1 = new ArrayList<String>();
	static ArrayList<String> respuestasJug2 = new ArrayList<String>();
 
	public static void main(String[] args) {
 
		Scanner teclado = new Scanner(System.in);
 
		System.out.print("Escoger letra: ");
		String letra = teclado.nextLine();
 
		//Turno Jugador1
		System.out.println("\n\t\t\tJugador 1");
		System.out.println("\t\t\t---------");
		System.out.println("Para cada tema, de una respuesta que comience con la letra escogida.");
 
		for (String tema: temas) {
			System.out.println("\nTema: " + tema + "\tLetra: " + letra);
			System.out.print("Respuesta: ");
			respuestasJug1.add(teclado.nextLine().toLowerCase());
		}
 
		//Turno Jugador2
		System.out.println("\n\t\t\tJugador 2");
		System.out.println("\t\t\t---------");
		System.out.println("Para cada tema, de una respuesta que comience con la letra escogida.");
 
		for (String tema: temas) {
			System.out.println("\nTema: " + tema + "\tLetra: " + letra);
			System.out.print("Respuesta: ");
			respuestasJug2.add(teclado.nextLine().toLowerCase());
		}
 
		//Evaluar respuestas
		int puntosJug1 = 0, puntosJug2 = 0;
		System.out.println("\nEvaluación de respuestas...");
		for (int c = 0; c < temas.length; c++) {
			System.out.println("\nTema: " + temas[c]);
			//Evaluacion Jug1
			System.out.print("Jug1: " + respuestasJug1.get(c) + " --> ");
			if (respuestasJug1.get(c).startsWith(letra)) {
				if (respuestasJug1.get(c).equals(respuestasJug2.get(c))) {
					System.out.println("5 pts");
					puntosJug1 += 5;
				}
				else {
					System.out.println("10 pts");
					puntosJug1 += 10;
				}
			}
			else {
				System.out.println("-7 pts.");
				puntosJug1 -= 7;
			}
			//Evaluacion Jug2
			System.out.print("Jug2: " + respuestasJug2.get(c) + " --> ");
			if (respuestasJug2.get(c).startsWith(letra)) {
				if (respuestasJug2.get(c).equals(respuestasJug1.get(c))) {
					System.out.println("5 pts");
					puntosJug2 += 5;
				}
				else {
					System.out.println("10 pts");
					puntosJug2 += 10;
				}
			}
			else {
				System.out.println("-7 pts");
				puntosJug2 -= 7;
			}
		}
 
		System.out.println("\nTotal puntos Jugador1: " + puntosJug1);
		System.out.println("Total puntos Jugador2: " + puntosJug2);
 
		System.out.println("\n\t\t\tFIN DE PROGRAMA");
		teclado.close();
 
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Haga un programa que maneje dos listas que contengan palabras de un juego

Publicado por Kabuto (1385 intervenciones) el 25/04/2021 13:49:29
Respecto al juego del Bingo, creo que se entiende fácil viendo este código.
Si algo no te queda claro, tienes dudas o lo que sea, por favor pregúntalas.
Un saludol.

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
public class Bingo {
 
	//Lista de 15 números que introducirá el usuario
	static ArrayList<Integer> listaNumeros = new ArrayList<Integer>(15);
 
	public static void main(String[] args) {
 
		Scanner teclado = new Scanner(System.in);
		System.out.println("Introduzca 15 números entre 1 y 75.");
		for (int c = 1; c <= 15; c++ ) {
			int numero = 0;
			do {
				System.out.println("#" + c);
				System.out.print("Numero: ");
				numero = teclado.nextInt();
			} while (numero < 1 || numero > 75 || listaNumeros.contains(numero));
			listaNumeros.add(numero);
		}
		teclado.close();
		//Usamos la función
		System.out.println("\nCantidad de números entre 31 y 45: " + cuantosEntre31y45());
		//Invocamos procedimiento
		compruebaCiertosNumeros();
 
		System.out.println("\n\t\t\tFIN DE PROGRAMA");
	}
 
	//Función
	static int cuantosEntre31y45() {
 
		int contador = 0;
 
		for (int numero: listaNumeros)
			if (numero >= 31 && numero <= 45)
				contador++;
 
		return contador;
	}
 
	//Procedimiento
	static void compruebaCiertosNumeros() {
		///Serie de números que han de ser buscados
		final int[] buscarNumeros = {8, 11, 23, 39, 46, 47, 60, 65, 72};
		System.out.println("\nComprobando si existen ciertos números en la lista...\n");
		for (int numeroBuscar: buscarNumeros)
			if (listaNumeros.contains(numeroBuscar))
				System.out.println("Encontrado número: " + numeroBuscar);
		System.out.println("\n...Comprobación terminada");
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar