Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Game {
- private final static Scanner scanner = new Scanner(System.in);
- private final static String INTRO = "угадай дверь, в диапозоне от 0 до 9 \nпочти все двери в случайном порядке\nкак минимум 1 дверь на своем месте\nугадай ее".toUpperCase();
- private int life;
- private int doorsCount;
- public Game(int life, int doorsCount) {
- this.life = life;
- this.doorsCount = doorsCount;
- }
- public static void main(String[] args) {
- new Game(3, 10).start();
- }
- private void start() {
- System.out.println(INTRO);
- List<Integer> doors = initDoors();
- while (life > 0) {
- System.out.printf("%d попытки угадать дверь\n", life);
- System.out.print("Выберите комнату: ");
- int input = scanner.nextInt();
- if (doors.get(input) == input) {
- System.out.println("угадали");
- printDoors(doors);
- return;
- }
- System.out.println("не верно,давай еще раз");
- life--;
- }
- System.out.println("Вы проиграли");
- printDoors(doors);
- }
- private void printDoors(List<Integer> doors) {
- System.out.println("Вот карта дверей");
- for (int i = 0; i < 10; i++) {
- System.out.printf("🚪#%d -> %d\n", i, doors.get(i));
- }
- }
- private List<Integer> initDoors() {
- Random random = new Random();
- List<Integer> doors = new ArrayList<>();
- for (int i = 0; i < doorsCount; i++) {
- doors.add(i);
- }
- Collections.shuffle(doors);
- normalizeElementIfNeeded(random.nextInt(doorsCount), doors);
- return doors;
- }
- private void normalizeElementIfNeeded(int element, List<Integer> doors) {
- if (normalized(doors)) return;
- for (int i = 0; i < doors.size(); i++) {
- if (doors.get(i) == element) {
- doors.set(i, doors.get(element));
- doors.set(element, element);
- break;
- }
- }
- }
- private boolean normalized(List<Integer> doors) {
- for (int i = 0; i < doors.size(); i++) {
- if (doors.get(i) == i) return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment