Итак, я работаю над копией простой игры в кости, которая была примером из учебников Maxwell Sanchez YouTube JAVA в Eclipse. То, с чем я начал играть, - это простые способы реализации текстового меню.Два консольных входа, требуемых для System.exit (0) во время else, если
То, что я пытаюсь выполнить, - это метод ввода Y или N либо для перезапуска программы, либо для ее уничтожения. Я полный noob, придя сюда после крошечного кусочка Arduino. Мне нравится JAVA, но есть много вещей, которые я не понимаю.
Моя проблема прямо сейчас заключается в том, что все работает до сих пор, за исключением того, что если вы дойдете до конца и введите N для выхода, для этого требуется 2 входа N для выполнения инструкции else if. Это что-то, что является ошибкой? Или я просто неправильно программирую то, что я пытаюсь выполнить.
import java.util.*;
public class diceGame
{
static int money;
static Scanner in = new Scanner(System.in);
static Random random = new Random();
static String userName;
static String tryAgain;
public static void main(String[] args)
{
money = 1000;
System.out.println("Welcome to this simple dice game! " +
"Please enter your name.");
String userName = in.nextLine();
System.out.println("Hey " + userName + ".");
rollDice();
}
public static void rollDice()
{
System.out.println("You have " + money + " coins!");
System.out.println("Please select a number (1-6) to bet on!");
int betRoll = in.nextInt();
System.out.println("Please place your bet!");
int betMoney = in.nextInt();
while (betMoney > money)
{
System.out.println("You don't have enough coins... you only " +
"have " + money + "coins.");
System.out.println("Please place a realistic bet!");
betMoney = in.nextInt();
}
int dice;
dice = random.nextInt(6)+1;
if (betRoll == dice)
{
System.out.println("You Win!");
money+=betMoney*6;
System.out.println("You have " + money + " coins.");
}
else
{
System.out.println("Snap! You lost your coins!");
money-=betMoney;
System.out.println("You have " + money + " coins.");
}
if (money <= 0)
{
System.out.println("You've lost all yer coins!");
System.out.println("Play again?" + " Type y or n");
if (in.next().equalsIgnoreCase("y"))
{
System.out.println("Maybe you'll win this time!");
money = 1000;
rollDice();
}
else if (in.next().equalsIgnoreCase("n"))
{
System.out.println("Maybe next time...");
System.exit(0);
}
else
{
System.out.println("Invalid character");
}
}
else
{
rollDice();
}
}
}