Я новичок в java/programming, и я подумал, что хороший способ научиться - это простая текстовая RPG-игра. Im на файле класса, где вы можете нанять работников, чтобы добывать руду для вас. В принципе, я беру 2000 золота у пользователя и рандомизировал число от 1 до 5 раз, и они получают руду на основе числа 10 раз. (например, 1 является медью, 4 является золотом)Looping in if statement
Это то, что у меня есть до сих пор, когда я запускаю его, он берет мое золото, но дает мне только 1 руду, когда он действительно должен дать мне 10, любую помощь? изменения: извините забыл упомянуть, я имел Int х = 0, в верхней
if ((input.input.equalsIgnoreCase("a")) && inventory.goldCoins >= 2000) {
System.out.println("You have hired Sanchez for $2000!");
inventory.goldCoins -= 2000;
do {
int workerOre = (int)(Math.random() * 5 + 1);
if (workerOre == 1) {
inventory.addInventory("Copper Ore");
menu.start();
} else if (workerOre == 2) {
inventory.addInventory("Iron Ore");
menu.start();
} else if (workerOre == 3) {
inventory.addInventory("Steel Ore");
menu.start();
} else if (workerOre == 4) {
inventory.addInventory("Gold Ore");
menu.start();
} else if (workerOre == 5) {
inventory.addInventory("Copper Ore");
}
x++;
} while (x < 10);
System.out.println("Sanchez has finished his shift and the ore has been added to your inventory!");
} else if ((input.input.equalsIgnoreCase("a")) && inventory.goldCoins < 2000) {
System.out.println("You do not have enough money!");
worker();
}
Эй, это сработало, но это дало мне 5 точных руд в случаях. Я хочу, чтобы это было случайным, так что, возможно, как 3 медь 1 сталь 1 золото и т. Д., Как это возможно? также почему это дало 5 instad 10? – user2809361
Рандомизатор может быть не идеальным, или система инвентаризации может не быть полной. Попытайтесь заменить учетных записей с помощью System.out.println(); для тестирования и посмотреть, что такое вывод. Поиграйте с ним, возможно, будут исправлены ошибки. – michaelwm