Что нового

Угадать случайное число

pisikot

Свой человек
Сообщения
63
Симпатии
48
#1
Рандомно загадывается число от 1 - 10, у вас есть 3 попытки.
*** можно добавить чтоб пользователь сам решал от 1 до n
*** можно добавить чтоб пользователь сам решал кол-во попыток
*** можно добавить счетчик попыток (вы угадали с 1й попытки и т.д.)
 

pisikot

Свой человек
Сообщения
63
Симпатии
48
#2
Java:
import java.util.Scanner;

public class Num {
    public static void main(String[] args) {
        System.out.println("Угадайте число от 1 до 10!, у вас 3 попытки.");
        int num = (int) (Math.random() * 10 + 1);
        int userInput;
        Scanner scanner = new Scanner(System.in);

        for (int i = 0; i < 3; i++) {
            System.out.println("Введите " + (i + 1) + "е число: ");
            userInput = scanner.nextInt();
            if (num == userInput) {
                System.out.println("Угадал! это число: " + num);
                break;
            } else if (userInput > num) {
                System.out.println("надо меньше!");
            } else if (userInput < num) {
                System.out.println("Надо больше!");
            }

        }
        System.out.println("Конец игры!");
    }
}
 

mexan

Администратор
Сообщения
498
Симпатии
58
#3
Вот мое решение.
Реализованы все дополнительные задания. Так же добавил проверку на 0 и ввод числа, большего, чем число n.

Java:
import java.util.Scanner;
import java.util.Random;

public class Main {

    public static void main(String[] args) {

        System.out.println("Правило игры: Нужно угадать число, за определенное количество попыток.");
        System.out.println("Настроим условия игры:");

        Scanner in = new Scanner(System.in);
        System.out.print("Выбери промежуток чисел, от 1 до: ");
        int interval = in.nextInt();
        System.out.print("Введи количество попыток: ");
        int attempt = in.nextInt();

        int[] array = new int[interval];
        int rnd = new Random().nextInt(array.length);

        int x = 0;
        while (attempt > 0) {
            x++;
            attempt--;
            System.out.println("Попытка " + x + ". Введите число: ");
            int num = in.nextInt();
            if (num == 0 || num > interval || num < 0) {
                System.out.println("Будь внимательнее! От 1 до " + interval + ".");
            }
            if (num == rnd) {
                System.out.println("Молодец! Ты угадал с " + x + " попытки.");
                break;
            }
            if (attempt == 0) {
                System.out.println("Не угадал, это число " + rnd + ".");
            }
        }
    }
}
 
Последнее редактирование:

mexan

Администратор
Сообщения
498
Симпатии
58
#5
Так, сделали мне замечания по коду:
  1. наименование переменных не даёт представление об их предназначении (x, array, ...). Код должен читаться как книга )
  2. Ну и нужно сразу приучаться к декомпозиции сложных методов. К примеру, строки вывода задания на игру можно вынести в метод printGreeting() или printRules() или что-то наподобие. Это также повышает читаемость кода.
 
Вверх Снизу