Java 掷骰子数组和方法调用
我正在研究这个问题,但我不知道如何获得一个数组来跟踪main中的rolls,以及如何循环调用执行rolls的方法。(请帮助我,我正在自己做这件事,没有老师。) 问题是: 编写一个模拟掷两个骰子的程序。提示用户输入掷骰子的数量。使用循环重复调用一个方法,该方法模拟掷骰子并将两个骰子的总数返回给main。在main中以数组形式跟踪转鼓,并通过显示转鼓结果结束程序 样本输出:Java 掷骰子数组和方法调用,java,Java,我正在研究这个问题,但我不知道如何获得一个数组来跟踪main中的rolls,以及如何循环调用执行rolls的方法。(请帮助我,我正在自己做这件事,没有老师。) 问题是: 编写一个模拟掷两个骰子的程序。提示用户输入掷骰子的数量。使用循环重复调用一个方法,该方法模拟掷骰子并将两个骰子的总数返回给main。在main中以数组形式跟踪转鼓,并通过显示转鼓结果结束程序 样本输出: How many times should I roll the dice? 100 Results for 100 dice
How many times should I roll the dice? 100
Results for 100 dice rolls
2 was rolled 4 times
3 was rolled 2 times
4 was rolled 1 times
5 was rolled 8 times
6 was rolled 15 times
7 was rolled 16 times
8 was rolled 17 times
9 was rolled 18 times
10 was rolled 10 times
11 was rolled 6 times
12 was rolled 3 times
到目前为止,我的代码是:
import java.util.Scanner;
public class TestingCenter {
private static Scanner input;
public static void main(String[] args){
System.out.println("How many times should I roll the dice? ");
int answer = input.nextInt();
for (int x = 0; x < answer; x++) {
}
}
public static int amount(int x){
int die1;
int die2;
int roll;
die1 = (int)(Math.random()*6) + 1;
die2 = (int)(Math.random()*6) + 1;
roll = die1 + die2;
return roll;
}
}
import java.util.Scanner;
公共类考试中心{
专用静态扫描仪输入;
公共静态void main(字符串[]args){
System.out.println(“我应该掷多少次骰子?”);
int answer=input.nextInt();
对于(intx=0;x
导入java.util.Arraylist
并简单地将每个值添加到列表中,作为循环应答的次数
public static void main(String[] args)
{
input = new Scanner(System.in);
System.out.println("How many times should I roll the dice? ");
int answer = input.nextInt();
List<Integer> list = new ArrayList<Integer>();
for (int x = 0; x < answer; x++)
{
list.add(amount(x));
}
}
publicstaticvoidmain(字符串[]args)
{
输入=新扫描仪(System.in);
System.out.println(“我应该掷多少次骰子?”);
int answer=input.nextInt();
列表=新的ArrayList();
for(int x=0;x
导入java.util.Arraylist
并简单地将每个值添加到列表中,作为循环应答的次数
public static void main(String[] args)
{
input = new Scanner(System.in);
System.out.println("How many times should I roll the dice? ");
int answer = input.nextInt();
List<Integer> list = new ArrayList<Integer>();
for (int x = 0; x < answer; x++)
{
list.add(amount(x));
}
}
publicstaticvoidmain(字符串[]args)
{
输入=新扫描仪(System.in);
System.out.println(“我应该掷多少次骰子?”);
int answer=input.nextInt();
列表=新的ArrayList();
for(int x=0;x
您可以创建一个HashMap
,其中一个键包含滚动结果,第二个值是该结果的滚动次数。它会给出这样的结果:
HashMap<Integer, Integer> results = new HashMap<Integer, Integer>();
for (int x = 0; x < answer; x++) {
int roll = amount(x);
if(results.get(roll) == null) {
results.put(roll, 1);
} else {
results.put(roll, results.get(roll) +1);
}
}
HashMap results=newhashmap();
对于(intx=0;x
然后,在打印时,只需对
循环(从1到12)执行一个,然后获得与每个循环数字相关联的值。您可以创建一个HashMap
,其中一个键包含滚动结果,第二个值是该结果的滚动次数。它会给出这样的结果:
HashMap<Integer, Integer> results = new HashMap<Integer, Integer>();
for (int x = 0; x < answer; x++) {
int roll = amount(x);
if(results.get(roll) == null) {
results.put(roll, 1);
} else {
results.put(roll, results.get(roll) +1);
}
}
HashMap results=newhashmap();
对于(intx=0;x
然后,在打印时,您只需对
循环执行一次(从1到12),然后获得与每个循环数字相关的值。您可以尝试类似的操作(注释中的解释):
您可以尝试以下方式(在评论中解释):
这是使用main
方法中的int[]
实现的:
import java.util.Random;
import java.util.Scanner;
public class TestingCenter {
private static final Random random = new Random();
public static void main(final String[] args) {
System.out.println("How many times should I roll the dice? ");
int answer = 0;
try (Scanner scanner = new Scanner(System.in)) {
answer = scanner.nextInt();
}
final int[] results = new int[11];
for (int x = 0; x < answer; x++) {
results[amount() - 2]++;
}
System.out.println(String.format("Results for %s dice rolls ", answer));
for (int i = 0; i < 11; i++) {
System.out.println(String.format("%s was rolled %s times", i + 2, results[i]));
}
}
public static int amount() {
return random.nextInt(6) + random.nextInt(6) + 2;
}
}
这是使用main
方法中的int[]
实现的:
import java.util.Random;
import java.util.Scanner;
public class TestingCenter {
private static final Random random = new Random();
public static void main(final String[] args) {
System.out.println("How many times should I roll the dice? ");
int answer = 0;
try (Scanner scanner = new Scanner(System.in)) {
answer = scanner.nextInt();
}
final int[] results = new int[11];
for (int x = 0; x < answer; x++) {
results[amount() - 2]++;
}
System.out.println(String.format("Results for %s dice rolls ", answer));
for (int i = 0; i < 11; i++) {
System.out.println(String.format("%s was rolled %s times", i + 2, results[i]));
}
}
public static int amount() {
return random.nextInt(6) + random.nextInt(6) + 2;
}
}
您的问题是什么?我发现您没有初始化扫描仪scanner input=new scanner(System.in)代码>第二次你没有调用你的方法amount
你有什么问题?我发现你没有初始化扫描仪扫描仪输入=新扫描仪(System.in)代码>第二次你不调用你的方法amount
我可以看到我遗漏了一些东西,但是我如何让输出看起来像我展示的样本,如何让它计算每个数字滚动的次数?@Yahya请查看你的输出并将次数(尝试次数)相加,它大于10。阅读问题并回顾你的答案。@michael,我明白了,你想要的是总数,只是每个问题的总数round@TarasShpulyar这是我朋友的总数:)我可以看出我遗漏了一些东西,但我如何让输出看起来像我展示的样本,我如何让它计算每个数字的滚动次数?@Yahya请查看您的输出并将大于10的次数(尝试次数)相加。阅读问题并回顾你的答案。@michael,我明白了,你想要的是总数,只是每个问题的总数round@TarasShpulyar这是我的朋友:)我的朋友,这个答案不能解决OP问题。请编辑或删除。@Yahya让OP来决定。我的朋友,这个答案不能解决OP的问题。请编辑或删除。@Yahya由OP决定。