Estoy haciendo un proyecto en netbeans, estoy trabajando en java, ayudame arreglando el siguiente codigo, en si hace esto: Implemente un juego en el que se pedirá introducir una secuencia de teclas en un tiempo determinado sin cometer errores. El tiempo se puede configurar por el usuario así como la longitud máxima de las secuencias. Cada secuencia de teclas se genera aleatoriamente por el programa teniendo en cuenta las teclas del abecedario con que juega cada jugador. En la pantalla irán apareciendo secuencias de manera aleatoria y se medirá el tiempo en que el usuario logra completarlas sin equivocarse. En todo momento se irá mostrando el resultado que va teniendo cada jugador (cantidad de aciertos vs. cantidad de fallos). El juego se implementará para que se juegue entre dos personas. Las secuencias de tecla de un jugador y otro deberán definirse separando el teclado a la mitad (mitad para las secuencias de un jugador y mitad para las del otro). De cada par de jugadores, uno jugará con la parte izquierda del teclado, y el otro con la parte derecha del teclado, una cantidad de veces. Luego, intercambiarán posiciones y jugarán la misma cantidad de veces nuevamente. El sistema deberá validar el ingreso de secuencias y generará finalmente un reporte de quién es el ganador. El sistema gestionará los datos de los jugadores y permitirá llevar a cabo un torneo con n jugadores siguiendo la estrategia que decidan para completar todos los juegos requeridos para declarar un ganador y los merecedores de un segundo y tercer lugar. pero quiero que arregles con estas especificaciones: 1. quiero que se pueda ingresar n jugadores, pero cuando ingrese solo 2 jugadores sea 1 vs 1, que no pueda ingresar un solo jugador, sino que sea a partir de 2, si ingresa 1 jugador que no me deje seguir, sino que se quede en el menu hasta ingresar un numero correcto 2. si ingresa un numero n de jugadores impares, que me deje jugar individualmente 3. si ingresa un numero par mayor o igual a 4, se haga equipos de dos y se pueda jugar por equipos y el puntaje me des de los equipos, no individuales 4. pon el nombre de los jugadores o equipos como en este ejemplo: Tu secuencia Juagdor1 es: aaaa y para los equipos que sea Tu secuencia Equipo1 es: aaaa si hay algun fallo no me des error, solo haz que no cuente el puntaje dame las clases por separado y con los codigos completos aqui esta el proyecto para que le mejores: /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.mycompany.principal; /** * * @author mendo */ import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Queue; import java.util.Scanner; public class GestorJuegos { public static void creaJugadores(ArrayList<Jugador> jugadores, Scanner scanner) { System.out.println("Ingrese el número de jugadores (debe ser par):"); int numJugadores; do { numJugadores = scanner.nextInt(); if (numJugadores % 2 != 0) { System.out.println("El número de jugadores debe ser par. Inténtelo de nuevo:"); } } while (numJugadores % 2 != 0); scanner.nextLine(); // Limpiar el buffer del teclado for (int i = 0; i < numJugadores; i++) { System.out.println("Ingrese el nombre del jugador " + (i + 1) + ":"); jugadores.add(new Jugador(scanner.nextLine())); } } public static void comenzarJuego(ArrayList<Jugador> jugadores, JuegoMecanografo juego, String texto, int tiempoJuegoEnSegundos, StringBuilder[] textosGrupos) { int cantidadJuegos = 3; // Cantidad de juegos por jugador en cada posición Queue<Jugador> colaJugadores = new ArrayDeque<>(jugadores); for (int i = 0; i < cantidadJuegos; i++) { int numGrupos = colaJugadores.size() / 2; for (int j = 0; j < numGrupos; j++) { System.out.println(); System.out.println("Grupo " + (j + 1) + " - Juego " + (i + 1)); for (int k = 0; k < 2; k++) { Jugador jugador = colaJugadores.poll(); Resultado resultado = juego.jugar(jugador, textosGrupos[j % 2].toString()); // Tabla de resultados System.out.println("------------------------------------------------------"); System.out.println("Acertadas | Falladas | Tiempo Tardado | Tiempo Original"); System.out.println("-------------------------------------------------------"); System.out.printf("%-9d | %-8d | %-11d | %-18d%n", resultado.getLetrasAcertadas(), resultado.getLetrasFalladas(), resultado.getTiempoJugador(), tiempoJuegoEnSegundos); colaJugadores.offer(jugador); // Devolver el jugador a la cola al finalizar su turno } } } // Intercambio de posiciones System.out.println(); System.out.println("¡Intercambio de posiciones!"); System.out.println("A partir de ahora, los jugadores jugarán con el texto del otro grupo."); // Intercambiar los grupos de jugadores colaJugadores.clear(); // Limpiar la cola de jugadores for (Jugador jugador : jugadores) { colaJugadores.offer(jugador); // Agregar los jugadores nuevamente a la cola } for (int i = 0; i < cantidadJuegos; i++) { int numGrupos = colaJugadores.size() / 2; for (int j = 0; j < numGrupos; j++) { System.out.println(); System.out.println("Grupo " + (j + 1) + " - Juego " + (i + 1) + " (Intercambio)"); for (int k = 0; k < 2; k++) { Jugador jugador = colaJugadores.poll(); Resultado resultado = juego.jugar(jugador, textosGrupos[j % 2].toString()); // Tabla de resultados System.out.println("------------------------------------------------------"); System.out.println("Acertadas | Falladas | Tiempo Tardado | Tiempo Original"); System.out.println("-------------------------------------------------------"); System.out.printf("%-9d | %-8d | %-11d | %-18d%n", resultado.getLetrasAcertadas(), resultado.getLetrasFalladas(), resultado.getTiempoJugador(), tiempoJuegoEnSegundos); colaJugadores.offer(jugador); // Devolver el jugador a la cola al finalizar su turno } } } } } /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.mycompany.principal; /** * * @author mendo */ import java.util.Scanner; import java.util.ArrayList; public class GestorResultados { public static void mostrarResultados(ArrayList<Jugador> jugadores) { System.out.println(); System.out.println("Resultados:"); for (Jugador jugador : jugadores) { System.out.println(jugador.getNombre() + ": " + jugador.getPuntaje() + " puntos."); } Jugador ganador = buscarGanador(jugadores); boolean empate = verificarEmpate(jugadores, ganador); if (empate) { System.out.println("¡Empate!"); } else { System.out.println("¡" + ganador.getNombre() + " es el ganador!"); } mostrarPodio(jugadores); } public static Jugador buscarGanador(ArrayList<Jugador> jugadores) { Jugador ganador = jugadores.get(0); for (Jugador jugador : jugadores) { if (jugador.getPuntaje() > ganador.getPuntaje()) { ganador = jugador; } } return ganador; } public static boolean verificarEmpate(ArrayList<Jugador> jugadores, Jugador ganador) { boolean empate = false; for (Jugador jugador : jugadores) { if (jugador.getPuntaje() == ganador.getPuntaje() && !jugador.equals(ganador)) { empate = true; break; } } return empate; } public static void mostrarPodio(ArrayList<Jugador> jugadores) { System.out.println(); System.out.println("Podio de Ganadores:"); for (int i = 0; i < 3 && i < jugadores.size(); i++) { System.out.println((i + 1) + "er Lugar: " + jugadores.get(i).getNombre() + " - Puntos: " + jugadores.get(i).getPuntaje()); } } } /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.mycompany.principal; /** * * @author mendo */ import java.util.Scanner; class JuegoMecanografo { int tiempoJuegoEnSegundos; int longitudMaximaSecuencia; String alfabetoGrupo1 = "qwertasdfgzxcvb"; String alfabetoGrupo2 = "yuiophjklmn"; public JuegoMecanografo(int tiempoJuegoEnSegundos, int longitudMaximaSecuencia) { this.tiempoJuegoEnSegundos = tiempoJuegoEnSegundos; this.longitudMaximaSecuencia = longitudMaximaSecuencia; } public String generarSecuenciaAleatoria(String alfabeto) { StringBuilder secuenciaBuilder = new StringBuilder(); int longitudSecuencia = (int) (Math.random() * longitudMaximaSecuencia) + 1; for (int i = 0; i < longitudSecuencia; i++) { int indice = (int) (Math.random() * alfabeto.length()); secuenciaBuilder.append(alfabeto.charAt(indice)); } return secuenciaBuilder.toString(); } @SuppressWarnings("resource") public Resultado jugar(Jugador jugador, String alfabeto) { Scanner scanner = new Scanner(System.in); String secuencia = generarSecuenciaAleatoria(alfabeto); System.out.println(); System.out.println("Tu secuencia es: " + secuencia); System.out.println("Escribe la secuencia lo más rápido posible:"); long tiempoInicio = System.currentTimeMillis(); String entrada = scanner.nextLine(); long tiempoFin = System.currentTimeMillis(); long tiempoTranscurrido = (tiempoFin - tiempoInicio) / 1000; // Convertir a segundos int letrasAcertadas = 0; int letrasFalladas = 0; for (int i = 0; i < Math.min(secuencia.length(), entrada.length()); i++) { if (secuencia.charAt(i) == entrada.charAt(i)) { letrasAcertadas++; } else { letrasFalladas++; } } if (tiempoTranscurrido > tiempoJuegoEnSegundos) { System.out.println("¡Tiempo agotado! Has perdido."); return new Resultado(letrasAcertadas, letrasFalladas, tiempoTranscurrido); } if (entrada.equals(secuencia)) { jugador.incrementarPuntaje(); System.out.println("¡Correcto! Has ganado un punto."); } else { System.out.println("Incorrecto. Has cometido un error."); } return new Resultado(letrasAcertadas, letrasFalladas, tiempoTranscurrido); } } /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.mycompany.principal; /** * * @author mendo */ public class Jugador { String nombre; int puntaje; public Jugador(String nombre) { this.nombre = nombre; this.puntaje = 0; } public String getNombre() { return nombre; } public int getPuntaje() { return puntaje; } public void incrementarPuntaje() { puntaje++; } } /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license */ package com.mycompany.principal; /** * * @author mendo */ import java.util.ArrayList; import java.util.Scanner; public class Principal { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Bienvenido al Juego del Mejor Mecanógrafo - Variante 2"); System.out.println("Ingrese el tiempo de juego en segundos:"); int tiempoJuegoEnSegundos = scanner.nextInt(); System.out.println("Ingrese la longitud máxima de las secuencias:"); int longitudMaximaSecuencia = scanner.nextInt(); scanner.nextLine(); // Limpiar el buffer del teclado JuegoMecanografo juego = new JuegoMecanografo(tiempoJuegoEnSegundos, longitudMaximaSecuencia); ArrayList<Jugador> jugadores = new ArrayList<>(); GestorJuegos.creaJugadores(jugadores, scanner); // Solicitar al usuario ingresar un texto para el juego String texto; do { System.out.println("Ingrese un texto para el juego:"); texto = scanner.nextLine(); // Verifica si el texto contiene solo letras if (!texto.matches("[a-zA-ZñÑ\\s]+")) { System.out.println("El texto solo debe contener letras."); } } while (!texto.matches("[a-zA-ZñÑ\\s]+")); // Dividir el texto en dos partes según los grupos definidos en JuegoMecanografo StringBuilder[] textosGrupos = new StringBuilder[2]; for (int i = 0; i < 2; i++) { textosGrupos[i] = new StringBuilder(); } for (char c : texto.toCharArray()) { if (juego.alfabetoGrupo1.indexOf(Character.toLowerCase(c)) != -1) { textosGrupos[0].append(c); } else if (juego.alfabetoGrupo2.indexOf(Character.toLowerCase(c)) != -1) { textosGrupos[1].append(c); } } GestorJuegos.comenzarJuego(jugadores, juego, texto, tiempoJuegoEnSegundos, textosGrupos); GestorResultados.mostrarResultados(jugadores); // Mostrar resultados y podio de ganadores scanner.close(); } } /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.mycompany.principal; /** * * @author mendo */ class Resultado { private int letrasAcertadas; private int letrasFalladas; private long tiempoJugador; public Resultado(int letrasAcertadas, int letrasFalladas, long tiempoJugador) { this.letrasAcertadas = letrasAcertadas; this.letrasFalladas = letrasFalladas; this.tiempoJugador = tiempoJugador; } public int getLetrasAcertadas() { return letrasAcertadas; } public int getLetrasFalladas() { return letrasFalladas; } public long getTiempoJugador() { return tiempoJugador; } }
fix invalid code: def add(a, b): return a - b ``` def add(a, b): return a + b ``` fix invalid code: Estoy haciendo un proyecto en netbeans, estoy trabajando en java, ayudame arreglando el siguiente codigo, en si hace esto: Implemente un juego en el que se pedirá introducir una secuencia de teclas en un tiempo determinado sin cometer errores. El tiempo se puede configurar por el usuario así como la longitud máxima de las secuencias. Cada secuencia de teclas se genera aleatoriamente por el programa teniendo en cuenta las teclas del abecedario con que juega cada jugador. En la pantalla irán apareciendo secuencias de manera aleatoria y se medirá el tiempo en que el usuario logra completarlas sin equivocarse. En todo momento se irá mostrando el resultado que va teniendo cada jugador (cantidad de aciertos vs. cantidad de fallos). El juego se implementará para que se juegue entre dos personas. Las secuencias de tecla de un jugador y otro deberán definirse separando el teclado a la mitad (mitad para las secuencias de un jugador y mitad para las del otro). De cada par de jugadores, uno jugará con la parte izquierda del teclado, y el otro con la parte derecha del teclado, una cantidad de veces. Luego, intercambiarán posiciones y jugarán la misma cantidad de veces nuevamente. El sistema deberá validar el ingreso de secuencias y generará finalmente un reporte de quién es el ganador. El sistema gestionará los datos de los jugadores y permitirá llevar a cabo un torneo con n jugadores siguiendo la estrategia que decidan para completar todos los juegos requeridos para declarar un ganador y los merecedores de un segundo y tercer lugar. pero quiero que arregles con estas especificaciones: 1. quiero que se pueda ingresar n jugadores, pero cuando ingrese solo 2 jugadores sea 1 vs 1, que no pueda ingresar un solo jugador, sino que sea a partir de 2, si ingresa 1 jugador que no me deje seguir, sino que se quede en el menu hasta ingresar un numero correcto 2. si ingresa un numero n de jugadores impares, que me deje jugar individualmente 3. si ingresa un numero par mayor o igual a 4, se haga equipos de dos y se pueda jugar por equipos y el puntaje me des de los equipos, no individuales 4. pon el nombre de los jugadores o equipos como en este ejemplo: Tu secuencia Juagdor1 es: aaaa y para los equipos que sea Tu secuencia Equipo1 es: aaaa si hay algun fallo no me des error, solo haz que no cuente el puntaje dame las clases por separado y con los codigos completos aqui esta el proyecto para que le mejores: /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.mycompany.principal; /** * * @author mendo */ import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Queue; import java.util.Scanner; public class GestorJuegos { public static void creaJugadores(ArrayList<Jugador> jugadores, Scanner scanner) { System.out.println("Ingrese el número de jugadores (debe ser par):"); int numJugadores; do { numJugadores = scanner.nextInt(); if (numJugadores % 2 != 0) { System.out.println("El número de jugadores debe ser par. Inténtelo de nuevo:"); } } while (numJugadores % 2 != 0); scanner.nextLine(); // Limpiar el buffer del teclado for (int i = 0; i < numJugadores; i++) { System.out.println("Ingrese el nombre del jugador " + (i + 1) + ":"); jugadores.add(new Jugador(scanner.nextLine())); } } public static void comenzarJuego(ArrayList<Jugador> jugadores, JuegoMecanografo juego, String texto, int tiempoJuegoEnSegundos, StringBuilder[] textosGrupos) { int cantidadJuegos = 3; // Cantidad de juegos por jugador en cada posición Queue<Jugador> colaJugadores = new ArrayDeque<>(jugadores); for (int i = 0; i < cantidadJuegos; i++) { int numGrupos = colaJugadores.size() / 2; for (int j = 0; j < numGrupos; j++) { System.out.println(); System.out.println("Grupo " + (j + 1) + " - Juego " + (i + 1)); for (int k = 0; k < 2; k++) { Jugador jugador = colaJugadores.poll(); Resultado resultado = juego.jugar(jugador, textosGrupos[j % 2].toString()); // Tabla de resultados System.out.println("------------------------------------------------------"); System.out.println("Acertadas | Falladas | Tiempo Tardado | Tiempo Original"); System.out.println("-------------------------------------------------------"); System.out.printf("%-9d | %-8d | %-11d | %-18d%n", resultado.getLetrasAcertadas(), resultado.getLetrasFalladas(), resultado.getTiempoJugador(), tiempoJuegoEnSegundos); colaJugadores.offer(jugador); // Devolver el jugador a la cola al finalizar su turno } } } // Intercambio de posiciones System.out.println(); System.out.println("¡Intercambio de posiciones!"); System.out.println("A partir de ahora, los jugadores jugarán con el texto del otro grupo."); // Intercambiar los grupos de jugadores colaJugadores.clear(); // Limpiar la cola de jugadores for (Jugador jugador : jugadores) { colaJugadores.offer(jugador); // Agregar los jugadores nuevamente a la cola } for (int i = 0; i < cantidadJuegos; i++) { int numGrupos = colaJugadores.size() / 2; for (int j = 0; j < numGrupos; j++) { System.out.println(); System.out.println("Grupo " + (j + 1) + " - Juego " + (i + 1) + " (Intercambio)"); for (int k = 0; k < 2; k++) { Jugador jugador = colaJugadores.poll(); Resultado resultado = juego.jugar(jugador, textosGrupos[j % 2].toString()); // Tabla de resultados System.out.println("------------------------------------------------------"); System.out.println("Acertadas | Falladas | Tiempo Tardado | Tiempo Original"); System.out.println("-------------------------------------------------------"); System.out.printf("%-9d | %-8d | %-11d | %-18d%n", resultado.getLetrasAcertadas(), resultado.getLetrasFalladas(), resultado.getTiempoJugador(), tiempoJuegoEnSegundos); colaJugadores.offer(jugador); // Devolver el jugador a la cola al finalizar su turno } } } } } /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.mycompany.principal; /** * * @author mendo */ import java.util.Scanner; import java.util.ArrayList; public class GestorResultados { public static void mostrarResultados(ArrayList<Jugador> jugadores) { System.out.println(); System.out.println("Resultados:"); for (Jugador jugador : jugadores) { System.out.println(jugador.getNombre() + ": " + jugador.getPuntaje() + " puntos."); } Jugador ganador = buscarGanador(jugadores); boolean empate = verificarEmpate(jugadores, ganador); if (empate) { System.out.println("¡Empate!"); } else { System.out.println("¡" + ganador.getNombre() + " es el ganador!"); } mostrarPodio(jugadores); } public static Jugador buscarGanador(ArrayList<Jugador> jugadores) { Jugador ganador = jugadores.get(0); for (Jugador jugador : jugadores) { if (jugador.getPuntaje() > ganador.getPuntaje()) { ganador = jugador; } } return ganador; } public static boolean verificarEmpate(ArrayList<Jugador> jugadores, Jugador ganador) { boolean empate = false; for (Jugador jugador : jugadores) { if (jugador.getPuntaje() == ganador.getPuntaje() && !jugador.equals(ganador)) { empate = true; break; } } return empate; } public static void mostrarPodio(ArrayList<Jugador> jugadores) { System.out.println(); System.out.println("Podio de Ganadores:"); for (int i = 0; i < 3 && i < jugadores.size(); i++) { System.out.println((i + 1) + "er Lugar: " + jugadores.get(i).getNombre() + " - Puntos: " + jugadores.get(i).getPuntaje()); } } } /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.mycompany.principal; /** * * @author mendo */ import java.util.Scanner; class JuegoMecanografo { int tiempoJuegoEnSegundos; int longitudMaximaSecuencia; String alfabetoGrupo1 = "qwertasdfgzxcvb"; String alfabetoGrupo2 = "yuiophjklmn"; public JuegoMecanografo(int tiempoJuegoEnSegundos, int longitudMaximaSecuencia) { this.tiempoJuegoEnSegundos = tiempoJuegoEnSegundos; this.longitudMaximaSecuencia = longitudMaximaSecuencia; } public String generarSecuenciaAleatoria(String alfabeto) { StringBuilder secuenciaBuilder = new StringBuilder(); int longitudSecuencia = (int) (Math.random() * longitudMaximaSecuencia) + 1; for (int i = 0; i < longitudSecuencia; i++) { int indice = (int) (Math.random() * alfabeto.length()); secuenciaBuilder.append(alfabeto.charAt(indice)); } return secuenciaBuilder.toString(); } @SuppressWarnings("resource") public Resultado jugar(Jugador jugador, String alfabeto) { Scanner scanner = new Scanner(System.in); String secuencia = generarSecuenciaAleatoria(alfabeto); System.out.println(); System.out.println("Tu secuencia es: " + secuencia); System.out.println("Escribe la secuencia lo más rápido posible:"); long tiempoInicio = System.currentTimeMillis(); String entrada = scanner.nextLine(); long tiempoFin = System.currentTimeMillis(); long tiempoTranscurrido = (tiempoFin - tiempoInicio) / 1000; // Convertir a segundos int letrasAcertadas = 0; int letrasFalladas = 0; for (int i = 0; i < Math.min(secuencia.length(), entrada.length()); i++) { if (secuencia.charAt(i) == entrada.charAt(i)) { letrasAcertadas++; } else { letrasFalladas++; } } if (tiempoTranscurrido > tiempoJuegoEnSegundos) { System.out.println("¡Tiempo agotado! Has perdido."); return new Resultado(letrasAcertadas, letrasFalladas, tiempoTranscurrido); } if (entrada.equals(secuencia)) { jugador.incrementarPuntaje(); System.out.println("¡Correcto! Has ganado un punto."); } else { System.out.println("Incorrecto. Has cometido un error."); } return new Resultado(letrasAcertadas, letrasFalladas, tiempoTranscurrido); } } /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.mycompany.principal; /** * * @author mendo */ public class Jugador { String nombre; int puntaje; public Jugador(String nombre) { this.nombre = nombre; this.puntaje = 0; } public String getNombre() { return nombre; } public int getPuntaje() { return puntaje; } public void incrementarPuntaje() { puntaje++; } } /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license */ package com.mycompany.principal; /** * * @author mendo */ import java.util.ArrayList; import java.util.Scanner; public class Principal { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Bienvenido al Juego del Mejor Mecanógrafo - Variante 2"); System.out.println("Ingrese el tiempo de juego en segundos:"); int tiempoJuegoEnSegundos = scanner.nextInt(); System.out.println("Ingrese la longitud máxima de las secuencias:"); int longitudMaximaSecuencia = scanner.nextInt(); scanner.nextLine(); // Limpiar el buffer del teclado JuegoMecanografo juego = new JuegoMecanografo(tiempoJuegoEnSegundos, longitudMaximaSecuencia); ArrayList<Jugador> jugadores = new ArrayList<>(); GestorJuegos.creaJugadores(jugadores, scanner); // Solicitar al usuario ingresar un texto para el juego String texto; do { System.out.println("Ingrese un texto para el juego:"); texto = scanner.nextLine(); // Verifica si el texto contiene solo letras if (!texto.matches("[a-zA-ZñÑ\\s]+")) { System.out.println("El texto solo debe contener letras."); } } while (!texto.matches("[a-zA-ZñÑ\\s]+")); // Dividir el texto en dos partes según los grupos definidos en JuegoMecanografo StringBuilder[] textosGrupos = new StringBuilder[2]; for (int i = 0; i < 2; i++) { textosGrupos[i] = new StringBuilder(); } for (char c : texto.toCharArray()) { if (juego.alfabetoGrupo1.indexOf(Character.toLowerCase(c)) != -1) { textosGrupos[0].append(c); } else if (juego.alfabetoGrupo2.indexOf(Character.toLowerCase(c)) != -1) { textosGrupos[1].append(c); } } GestorJuegos.comenzarJuego(jugadores, juego, texto, tiempoJuegoEnSegundos, textosGrupos); GestorResultados.mostrarResultados(jugadores); // Mostrar resultados y podio de ganadores scanner.close(); } } /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.mycompany.principal; /** * * @author mendo */ class Resultado { private int letrasAcertadas; private int letrasFalladas; private long tiempoJugador; public Resultado(int letrasAcertadas, int letrasFalladas, long tiempoJugador) { this.letrasAcertadas = letrasAcertadas; this.letrasFalladas = letrasFalladas; this.tiempoJugador = tiempoJugador; } public int getLetrasAcertadas() { return letrasAcertadas; } public int getLetrasFalladas() { return letrasFalladas; } public long getTiempoJugador() { return tiempoJugador; } } ```