See More

import java.util.List; import java.util.Scanner; import java.util.Random; /* // option 1 public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); boolean playAgain; int iteration = 1; int maxSpeed; do { Race race = new Race(); if (iteration == 1) { maxSpeed = 250; } else { maxSpeed = 250 + (new Random().nextInt(51)); } for (int i = 0; i < 3; i++) { String name; int speed = 0; System.out.print(" - Ââåäèòå íàçâàíèå àâòîìîáèëÿ #" + (i + 1) + ": "); name = scanner.nextLine(); boolean validInput = false; while (!validInput) { System.out.print(" - Ââåäèòå ñêîðîñòü âàøåãî àâòîìîáèëÿ : "); if(scanner.hasNextInt()) { speed = scanner.nextInt(); scanner.nextLine(); if (iteration == 1) { if (speed > 0 && speed <= maxSpeed) { break; } else { System.out.println(" — Íåïðàâèëüíàÿ ñêîðîñòü, ïîïðîáóéòå ñíîâà: "); } } else { if (speed >= 250 && speed <= maxSpeed) { break; } else { System.out.println(" — Íåïðàâèëüíàÿ ñêîðîñòü, ïîïðîáóéòå ñíîâà: "); } } } else { System.out.println("Ïîæàëóéñòà, ââåäèòå öåëîå ÷èñëî."); scanner.nextLine(); // Clear the invalid input } } Car car = new Car(name, speed); race.addCar(car); } List leaders = race.getCurrentLeaders(); if (!leaders.isEmpty()) { System.out.println("\nÑàìàÿ áûñòðàÿ ìàøèíà: " + String.join(", ", leaders)); } System.out.print("Õîòèòå ñûãðàòü ñíîâà? (äà/íåò): "); String response = scanner.nextLine(); playAgain = response.equalsIgnoreCase("äà"); iteration++; } while (playAgain); scanner.close(); } } // option 2 public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); boolean playAgain; boolean isFirstIteration = true; // Changed to a boolean int maxSpeed; do { Race race = new Race(); // Adjust maxSpeed based on whether it's the first iteration if (isFirstIteration) { maxSpeed = 250; } else { maxSpeed = 250 + (new Random().nextInt(51)); } for (int i = 0; i < 3; i++) { String name; int speed = 0; System.out.print(" - Ââåäèòå íàçâàíèå àâòîìîáèëÿ #" + (i + 1) + ": "); name = scanner.nextLine(); boolean validInput = false; while (!validInput) { System.out.print(" - Ââåäèòå ñêîðîñòü âàøåãî àâòîìîáèëÿ : "); if (scanner.hasNextInt()) { speed = scanner.nextInt(); scanner.nextLine(); if (isFirstIteration) { if (speed > 0 && speed <= maxSpeed) { validInput = true; // Mark the input as valid } else { System.out.println(" — Íåïðàâèëüíàÿ ñêîðîñòü, ïîïðîáóéòå ñíîâà: "); } } else { if (speed >= 250 && speed <= maxSpeed) { validInput = true; // Mark the input as valid } else { System.out.println(" — Íåïðàâèëüíàÿ ñêîðîñòü, ïîïðîáóéòå ñíîâà: "); } } } else { System.out.println("Ïîæàëóéñòà, ââåäèòå öåëîå ÷èñëî."); scanner.nextLine(); // Clear the invalid input } } Car car = new Car(name, speed); race.addCar(car); } List leaders = race.getCurrentLeaders(); if (!leaders.isEmpty()) { System.out.println("\nÑàìàÿ áûñòðàÿ ìàøèíà: " + String.join(", ", leaders)); } System.out.print("Õîòèòå ñûãðàòü ñíîâà? (äà/íåò): "); String response = scanner.nextLine(); playAgain = response.equalsIgnoreCase("äà"); isFirstIteration = false; // Set it to false after the first iteration } while (playAgain); scanner.close(); } } // option 3: public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); boolean playAgain; boolean isFirstIteration = true; // Changed to a boolean int maxSpeed; do { Race race = new Race(); if (isFirstIteration) { maxSpeed = 250; } else { maxSpeed = 250 + (new Random().nextInt(51)); } for (int i = 0; i < 3; i++) { String name; int enteredSpeed = 0; int wrongEntries = 0; System.out.print(" - Ââåäèòå íàçâàíèå àâòîìîáèëÿ #" + (i + 1) + ": "); name = scanner.nextLine(); boolean validInput = false; while (!validInput) { System.out.print(" - Ââåäèòå ñêîðîñòü âàøåãî àâòîìîáèëÿ : "); if (scanner.hasNextInt()) { enteredSpeed = scanner.nextInt(); scanner.nextLine(); // Consume the newline if (isFirstIteration) { if (enteredSpeed > 0 && enteredSpeed <= maxSpeed) { validInput = true; // Mark the input as valid } else { System.out.println(" — Íåïðàâèëüíàÿ ñêîðîñòü, ïîïðîáóéòå ñíîâà: "); wrongEntries++; } } else { if (enteredSpeed >= 250 && enteredSpeed <= maxSpeed) { validInput = true; } else { System.out.println(" — Íåïðàâèëüíàÿ ñêîðîñòü, ïîïðîáóéòå ñíîâà: "); wrongEntries++; } } } else { System.out.println("Ïîæàëóéñòà, ââåäèòå öåëîå ÷èñëî."); scanner.nextLine(); } } int finalSpeed = enteredSpeed; for (int j = 0; j < wrongEntries; j++) { finalSpeed -= (finalSpeed * 0.1); } Car car = new Car(name, (int) finalSpeed); race.addCar(car); } List leaders = race.getCurrentLeaders(); if (!leaders.isEmpty()) { System.out.println("\nÑàìàÿ áûñòðàÿ ìàøèíà: " + String.join(", ", leaders)); } System.out.print("Õîòèòå ñûãðàòü ñíîâà? (äà/íåò): "); String response = scanner.nextLine(); playAgain = response.equalsIgnoreCase("äà"); isFirstIteration = false; } while (playAgain); scanner.close(); } } */ // option 3 public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); boolean playAgain; boolean isFirstIteration = true; // Changed to a boolean int maxSpeed; do { Race race = new Race(); StringBuilder results = new StringBuilder(); // To hold results and finalized speeds if (isFirstIteration) { maxSpeed = 250; } else { maxSpeed = 250 + (new Random().nextInt(51)); } // Loop to collect details for 3 cars for (int i = 0; i < 3; i++) { String name; int enteredSpeed = 0; int wrongEntries = 0; // ? ÍÅ ÄÀ¨Ì ÂÂÅÑÒÈ ÏÓÑÒÎÅ ÍÀÇÂÀÍÈÅ do { System.out.print(" - Ââåäèòå íàçâàíèå àâòîìîáèëÿ #" + (i + 1) + ": "); name = scanner.nextLine().trim(); if (name.isEmpty()) { System.out.println("Íàçâàíèå íå ìîæåò áûòü ïóñòûì. Ïîïðîáóéòå ñíîâà."); } } while (name.isEmpty()); boolean validInput = false; // Input for speed with validation // ââîä ñêîðîñòè ñ ñóùåñòâóþùåé ïðîâåðêîé while (!validInput) { System.out.print(" - Ââåäèòå ñêîðîñòü âàøåãî àâòîìîáèëÿ: "); if (scanner.hasNextInt()) { enteredSpeed = scanner.nextInt(); scanner.nextLine(); // Consume the newline // ñúåäàåì ïåðåâîä ñòðîêè // Validate the speed based on the current iteration if (isFirstIteration) { if (enteredSpeed > 0 && enteredSpeed <= maxSpeed) { validInput = true; // Mark the input as valid } else { System.out.println(" — Íåïðàâèëüíàÿ ñêîðîñòü, ïîïðîáóéòå ñíîâà."); wrongEntries++; } } else { if (enteredSpeed >= 250 && enteredSpeed <= maxSpeed) { validInput = true; // Mark the input as valid } else { System.out.println(" — Íåïðàâèëüíàÿ ñêîðîñòü, ïîïðîáóéòå ñíîâà."); wrongEntries++; } } } else { System.out.println("Ïîæàëóéñòà, ââåäèòå öåëîå ÷èñëî."); scanner.nextLine(); // Consume the invalid input } } // Calculate the final speed based on wrong attempts double finalSpeed = enteredSpeed; for (int j = 0; j < wrongEntries; j++) { finalSpeed -= (finalSpeed * 0.1); // Reduce speed by 10% for each wrong entry } // Create a car with the final speed Car car = new Car(name, (int) finalSpeed); race.addCar(car); // Append the details to the results StringBuilder results.append(" — Àâòîìîáèëü: ").append(name) .append(", Ââåäåííàÿ ñêîðîñòü: ").append(enteredSpeed) .append(", Êîëè÷åñòâî íåïðàâèëüíûõ ïîïûòîê: ").append(wrongEntries) .append(", Êîíå÷íàÿ ñêîðîñòü: ").append((int) finalSpeed).append("\n"); } // Find and display the current leaders after entries for all cars List leaders = race.getCurrentLeaders(); if (!leaders.isEmpty()) { System.out.println("\nÑàìàÿ áûñòðàÿ ìàøèíà: " + String.join(", ", leaders)); } // Display all input details after all cars have been entered System.out.println(results); // Ask the user if they want to play again System.out.print("Õîòèòå ñûãðàòü ñíîâà? (äà/íåò): "); String response = scanner.nextLine(); playAgain = response.equalsIgnoreCase("äà"); isFirstIteration = false; } while (playAgain); scanner.close(); } }