帮忙看一段投骰子的java程序,谢谢!
题目要求是两个人投骰子,每次抛的点数加上上一次抛的点数之和与对手进行比较,若点数和比对方大5以上(包括5),则你赢,否则对手赢,模拟100000次游戏,并计算平均一局抛骰子的次数。package cn.edu.ccnu.cs2017211667;
import java.util.Random;
public class Control {
public static void main(String[] args) {
int sums1=0;
int sums2=0;
int count=0;
int sums1_sums2=sums1-sums2;
int total=0;
for(int i=0;i<100000;i++) {
do {
Random d1 = new Random();//这是一个生成随机数字的函数0-1
int s1=d1.nextInt(6);
sums1+=s1;
Random d2 = new Random();//这是一个生成随机数字的函数0-1
int s2=d2.nextInt(6);//产生0-6的随机数
sums2+=s2;
count++;
}while(Math.abs(sums1_sums2)<5);
if(sums1_sums2>=5)
System.out.println("前者赢");
else
System.out.println("后者赢");
}
total+=count;
}
System.out.println("平均一局要扔"+total/100000+"次骰子");
} 所以你要问什么呢? 华师的盆友~ 你这写的貌似不符合题意 不该用 do while {:5_108:} Random 需要 +1
for 循环<=
第一,你需要实现平均一局掷色子的次数。count不应该是每执行一次random.nextIn()就要自加吗。为什么两个选手各扔一次骰子但是count++只执行一次?
第二,创建Random对象不要放在for循环里。
这是我看出来的两处问题,我水平也高,有说得不对的地方欢迎指正。
页:
[1]