Ответ “Да или ”Нет" для продолжения игры

234
19 апреля 2017, 11:12

Не судите строго учу JAVA третий день, решил создать программку для фана, после завершения игры, хочу что бы выводился вопрос: хотите продолжить или нет? Если ответ" да" то бы игра началась заново, если ответ "нет" то всего доброго.

import java.util.Scanner;
import java.util.Random;
public class Bender {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int summa;
        String stavka;
        System.out.println("Сделайте вашу ставку, вы можете поставить на красное или черное, четное или не не четное, или на определленое число.");
        stavka = scanner.next();
        System.out.println("Какую сумму ставите?");
        summa = scanner.nextInt();
        for (int i = 0; i < 1; i++) {
            int b;
            String[] colour = {"Черное.", "Красное."};
            Random random = new Random();
            Random random1 = new Random();
            int select = random.nextInt(colour.length);
            b = (random1.nextInt(36));
            if (b == 0) {
                System.out.print("");
            } else if ((b & 1) == 0) {
                System.out.print(" Выпало четное" + " ");
            } else {
                System.out.print("Выпало нечетное" + " ");
            }
            System.out.println(b + " " + colour[select]);
        }
            String otvet;
            int znach = 1;
            if (stavka.equals("Красное")) {
                System.out.println("Ставка сыграла, вы победили!Выиграшь составляет:" + summa * 2);
            } else if (stavka.equals("Черное")) {
                System.out.println("Ставка сыграла, вы победили!Выиграшь составляет:" + summa * 2);
            } else if (stavka.equals("Не четное")) {
                System.out.println("Ставка сыграла, вы победили!Выиграшь составляет:" + summa * 2);
            } else if (stavka.equals("Четное")) {
                System.out.println("Ставка сыграла, вы победили!Выиграшь составляет:" + summa * 2);
            } else
            System.out.println("Вы проиграли,делаем ставку еще раз?");
            otvet = scanner.next();
            if (otvet.equals("Да")) {
                System.out.println("Продолжаем!");
            } else if (otvet.equals("Нет")) ;
            System.out.println("Жаль(До Встречи!");
        }
    }
Answer 1

Можно использовать следующий подход для реализации такой логики.

  1. Обернуть вашу игру в класс, например Game. В цикле создаем объект данного класса.
  2. Для старта игры, вызвать соответствующий метод, например start
  3. После того как игра завершена, выйти из метода start. Затем спросить игрока, хочет ли он продолжить.
    Если вопрос утвердительный, создаем еще раз объект и переходим к шагу 2, иначе завершаем программу - выйдя из цикла.

На псевдокоде это будет выглядеть так:

while(true){
     Game game = new Game();
     game.start();
     System.out.println("хотите сыграть еще?")
     if (ответ отрицательный)
         break;
}
Answer 2

Как вариант - можете вынести раунд в отдельную функцию, и вызывать ее до тех пор, пока глобальная переменная true (не проверял на ide):

import java.util.Scanner;
import java.util.Random;
public class Bender {
static boolean playAgain = true;
     public static void main(String[] args) {
         while (playAgain) {
             Game(); /* вызов игры */
         }
     }
    public static void Game() {
            /* весь остальной код */ 
            playAgain = false; //тут храним ответ игрока - да или нет
            System.out.println("Вы проиграли,делаем ставку еще раз?");
            otvet = scanner.next();
            if (otvet.equals("Да")) {
                System.out.println("Продолжаем!");
                playAgain = true;
            } else if (otvet.equals("Нет")) ;
            System.out.println("Жаль(До Встречи!");
        }
    }
}

Способ не совсем красивый, но с минимальным исправлением кода.

READ ALSO
Ограничение размера Dialog

Ограничение размера Dialog

У меня есть диалоговое окно,в котором содержится RecyclerViewПри добавлении элементов окно становится выше

183
Bluetooth в Java

Bluetooth в Java

Скажите пожалуйста, возможно ли с помощью Java написать программу под Windows для работы с BluetoothЕсли да, то хотелось бы примеры программ, ссылки,...

200
Как перенести HTML сайт на Wordpress [требует правки]

Как перенести HTML сайт на Wordpress [требует правки]

Ребята, кто знает хорошие источники для переноса сайта с HTML на WordPress? Курс для новичков, так сказать

294