所以我有一个问题,想弄清楚如何创建一个循环,并在我必须为学校项目创建的骰子游戏应用程序中引入另一个类。游戏必须保持每轮18的用户得分是最大得分,并且如果用户在1轮中滚动超过10,则他的点数将丢失并且他在1点开始下一轮。当用户输入Y to Roll或R停止时,游戏还必须验证。对此的一些帮助将不胜感激。我在设置循环后遇到问题,在循环中输入Y后继续游戏或告诉用户在输入R后游戏已经停止。因此,在输入Y之后,循环将打印出“Round1”Roll:6 [Y或R],用户输入Y,打印出“Round 2”等等,我不知道如何验证用户输入。
import java.util.Scanner;
import java.util.Random;
import java.lang.Boolean;
public class Player {
public static void main(String[] args){
String player;
String playerAnswer;
Boolean answer = true;
int RoundScore;
int TotalScore;
int playerScore;
int Round;
Scanner user = new Scanner(System.in);
System.out.println("Enter your First Name to play!");
player = user.nextLine();
playerAnswer = user.nextLine();
{
System.out.println("Your Name:" + "" + player);
System.out.println("Welcome" + "" + player + "" + "To Dice Game");
System.out.println("Enter Y to Roll or R to STop:[Y or R]" + "" + playerAnswer.toUpperCase());
}
}
}
package Project4;
import java.util.Random;
import java.util.Scanner;
public class Dice{
public static void main(String[] args){
Random dice = new Random();
int number = 0;
for(int counter = 1; counter <= 1; counter++)
number = 1 + dice.nextInt(18);
System.out.println(number + "");
}
}
答案 0 :(得分:1)
你要注意的事情我不认为(1)骰子可以卷到18个.3个骰子的范围应该是3 - 18而不是1 - 18。
number = 3 + dice.nextInt(16);
对于循环问题,请使用do while循环,并指定一个变量以获取并注意到您的playerAnswer应该如何在System.out.println下。
int rounds = 1;
do {
// codes that you want to loop
System.out.println("Welcome" + "" + player + "" + "To Dice Game");
System.out.println("Round " + rounds); // this will annouce the number of rounds
System.out.println("Enter Y to Roll or R to STop:[Y or R]")
playerAnswer = user.nextLine();
rounds++;
} while (playerAnswer.equalsIgnoreCase("y");
此外,我不认为你在这里有2个主要方法,因为你正在创建“一个”应用程序,而不是2个不同的应用程序。我建议您使用
创建一个子方法public static void rollDice()
{
// codes for rolling the dice
}
并调用rollDice方法只需执行
rollDice();
然而,你正在创建的应用程序看起来很小并只做骰子滚动,如果我是你,我甚至不需要为它创建一个方法。
您可能正在尝试学习如何创建课程。看到你的代码,你似乎还没有那么好的Java。我建议你从基础知识重新开始学习Java。我认为你需要在学校课堂上多加注意。