如何用java程序实现,求到一百需要掷几次骰子 50
1个回答
展开全部
package com.test;
import java.util.Random;
public class saizi {
public static void main(String[] args) {
int count = 0;// 用于统计次数
int sum = 1;// 用于记录骰子和,退<1></1>就减。
while (sum < 100) {
count++;// 每次循环都加1次
Random r = new Random();
int num = r.nextInt(6);
int diceCount = num + 1;// 用于模拟骰子点数
sum += diceCount;// 每一次都加上骰子点数
while (ifLoop(sum)) {
sum = changeSum(sum);
}
}
System.out.println(count);
}
public static int changeSum(int sum) {
// 开始判断退格
while (ifLoop(sum)) {
Random r = new Random();
int num = r.nextInt(2);
if (sum == 8) {
if (num == 0) {// 使用随机数模拟随机退4或6
sum -= 4;
} else {
sum -= 6;
}
} else if (sum == 15 || sum == 17 || sum == 19 || sum == 23 || sum == 21 || sum == 25) {
sum = 20;
} else if (sum == 20) {
if (num == 0) {
sum = 70;
} else {
sum = 90;
}
} else if (sum == 28) {
if (num == 0) {// 使用随机数模拟随机进3或5
sum += 3;
} else {
sum += 5;
}
} else if (sum == 30 || sum == 34 || sum == 80) {
if (num == 0) {// 使用随机数模拟随机退3或5
sum -= 3;
} else {
sum -= 5;
}
} else if (sum == 36 || sum == 40) {
sum -= 5;
} else if (sum == 43 || sum == 67 || sum == 81 || sum == 92) {
sum -= 4;
} else if (sum == 47 || sum == 52 || sum == 61 || sum == 69 || sum == 85 || sum == 83) {
sum -= 6;
} else if (sum == 56 || sum == 65 || sum == 91 || sum == 93) {
sum -= 5;
} else if (sum == 72 || sum == 74 || sum == 76 || sum == 78) {
sum = 70;
} else if (sum == 87) {
sum = 80;
} else if (sum == 94 || sum == 95 || sum == 97) {
sum = 90;
} else if (sum == 98) {
if (num == 0) {// 使用随机数模拟随机退2或5
sum -= 2;
} else {
sum -= 5;
}
} else if (sum == 99) {
sum -= 4;
}
}
return sum;
}
public static boolean ifLoop(int sum) {
int array[] = { 8, 15, 17, 19, 20, 21, 23, 25, 28, 30, 34, 36, 40, 43, 47, 52, 56, 61, 65, 67, 69, 70, 72, 74,
76, 78, 80, 81, 83, 85, 87, 90, 91, 92, 93, 94, 95, 97, 98, 99 };
for (int i = 0; i < array.length; i++) {
if (sum == array[i]) {
return true;
} else if (sum == 70) {
System.out.println("乐趣怪!");
return false;
} else if (sum == 90) {
System.out.println("惊喜怪!");
return false;
}
}
return false;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询