Java Dice Roller Loops

时间:2014-03-10 00:30:50

标签: java

所以我有一个问题,想弄清楚如何创建一个循环,并在我必须为学校项目创建的骰子游戏应用程序中引入另一个类。游戏必须保持每轮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 + "");
    }
}

1 个答案:

答案 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。我认为你需要在学校课堂上多加注意。