This commit is contained in:
PC de clase committed 2026-10-29 13:49:18 +01:00
1 parent be0890250f
commit 5170e7b2e7
3 files changed
+156 -4

No files matched your search

+7 -3
View File
@@ -4,7 +4,7 @@ public class Metodos1{
public static void main(String[] args){
int numero=0;
System.out.println("Introduce un entero");
numero = leerEntero();
numero = leerEnteroPositivo();
int resultado = potencias2(numero);
System.out.printf("El resultado es %d\n",resultado);
}
@@ -13,19 +13,23 @@ public class Metodos1{
while(1 << result <= n) result++;
return result;
}
public static int leerEntero() {
public static int leerEnteroPositivo() {
Scanner sc = new Scanner(System.in);
boolean parar = false;
int n = 0;
while(!parar) {
try {
n = sc.nextInt();
parar = true;
} catch(Exception e){
System.out.println("Número invalido, intentalo otra vez");
} finally {
sc.next();
}
if(n > 0)
parar = true;
else {
System.out.println("Tiene que ser positivo");
}
}
sc.close();
return n;
-1
View File
@@ -28,7 +28,6 @@ public class Metodos3 {
parar = true;
} catch(Exception e){
System.out.println("Número invalido, intentalo otra vez");
} finally {
sc.next();
}
}
+149
View File
@@ -0,0 +1,149 @@
import java.util.Random;
import java.util.Scanner;
public class Metodos7 {
private class Jugador {
String nombre = "Anonimo";
int puntos = 0;
}
public static void main(String[] args) {
System.out.println("GUERRA DE DADOS");
System.out.println("===============");
Scanner sc = new Scanner(System.in);
Random r = new Random();
int puntosParaGanar = 1000;
Metodos7 juego = new Metodos7();
Jugador j1 = juego.new Jugador();
Jugador j2 = juego.new Jugador();
switch (menuPrincipal(sc)) {
case 1: // Configuración
System.out.println("Cuantos puntos hacen falta para ganar?");
puntosParaGanar = leerEnteroPositivo(sc);
case 2: // Jugar
System.out.println("Introduce el nombre del jugador 1");
j1.nombre = sc.nextLine();
System.out.println("Introduce el nombre del jugador 2");
j2.nombre = sc.nextLine();
while (j1.puntos < puntosParaGanar && j2.puntos < puntosParaGanar) {
int puntos1 = tirarDados(j1, sc, r);
int puntos2 = tirarDados(j2, sc, r);
if(puntos1 == puntos2){
System.out.println("Ha habido un empate!!");
continue;
}
Jugador ganador, perdedor;
if (puntos1 > puntos2){
ganador = j1;
perdedor = j2;
} else {
ganador = j2;
perdedor = j1;
}
int puntosGanador = puntos1 + puntos2;
int puntosPerdedor = (puntos1 < puntos2) ? puntos1 : puntos2;
System.out.printf("%s gana la ronda: +%dpts\n", ganador.nombre, puntosGanador);
ganador.puntos += puntosGanador;
System.out.printf("%s pierde la ronda: -%dpts\n", perdedor.nombre, puntosPerdedor);
perdedor.puntos -= puntosPerdedor;
mostrarPuntos(j1, j2);
System.out.println();
}
if (j1.puntos >= puntosParaGanar && j2.puntos >= puntosParaGanar) {
System.out.println("Ha habido un empate");
} else if (j1.puntos > j2.puntos) {
System.out.printf("El ganador es %s\n", j1.nombre);
} else {
System.out.printf("El ganador es %s\n", j2.nombre);
}
System.out.println();
break;
case 3:
default:
}
}
private static void mostrarPuntos(Jugador j1, Jugador j2) {
System.out.printf("%s tiene %d puntos\n", j1.nombre, j1.puntos);
System.out.printf("%s tiene %d puntos\n", j2.nombre, j2.puntos);
System.out.println();
}
private static int tirarDados(Jugador j, Scanner sc, Random r) {
System.out.printf("Turno de %s\n", j.nombre);
System.out.println("Pulsa ENTER para tirar los dados");
sc.nextLine();
int d1 = r.nextInt(1, 7);
int d2 = r.nextInt(1, 7);
int resultado = d1;
System.out.printf("Has tirado un %d con modificador %d\n", d1, d2);
switch (d2) {
case 1:
resultado = 1;
for (int i = 2; i <= d2; i++) resultado *= i;
System.out.println("MODIFICADOR: Factorial");
break;
case 2:
resultado = (d1 * (d1 + 1)) / 2;
System.out.println("MODIFICADOR: Sumatorio");
break;
case 3:
resultado = d1 * d1;
System.out.println("MODIFICADOR: Cuadrado");
break;
case 4:
resultado = 1;
System.out.println("MODIFICADOR: Elevar a 0");
break;
case 5:
System.out.println("Sin modificador :-(");
break;
case 6:
resultado = 0;
System.out.println("MODIFICADOR: Sin puntos :-(");
break;
default:
}
System.out.printf("Ahora tu puntuación es %d\n", resultado);
System.out.println();
return resultado;
}
private static int menuPrincipal(Scanner sc) {
boolean parar = false;
while (!parar) {
System.out.print("Menu Principal:\n" +
"\t1-Configurar\n" +
"\t2-Jugar\n" +
"\t3-Salir\n");
int n = leerEnteroPositivo(sc);
if (n > 0 && n <= 3) {
return n;
} else System.out.println("Numero invalido, elige uno entre las opciones");
}
return 0;
}
private static int leerEnteroPositivo(Scanner sc) {
boolean parar = false;
int n = -1;
while (!parar) {
try {
n = sc.nextInt();
} catch (Exception e) {
System.out.println("Numero invalido vuelve a insertar uno");
sc.nextLine();
continue;
}
if (n > 0) parar = true;
else System.out.println("Tiene que ser un numero positivo!");
}
sc.nextLine();
return n;
}
}