1个回答
展开全部
需要用到的知识点: 随机数,异常处理,循环等
参考代码: 可以根据需求自行修改
import java.util.Scanner;
public class Demo {
static Scanner input;//扫描器
static int money = 5000;//初始金币
static int lowCost = 50;//每次最小的金币
static int highCost = 1000;//每次最大的金币
public static void main(String[] args) {
input = new Scanner(System.in);
int cost;
int num;
while (money >= 50) {//每次不能小于50
cost = getCost();//注
num = getNum() + getNum() + getNum();//3个色子
boolean flag = xz();//大还是小
yz(num, flag, cost);//验证结果,并奖励或者惩罚
}
System.out.println("money小于50结束");
}
private static int getNum() {// 随即1~6之间的数
return (int) (Math.random() * 6) + 1;
}
private static void yz(int num, boolean flag, int cost) {// 验证结果,并奖励或者惩罚
System.out.println("结果是:" + num + (num >= 9 ? " 大" : " 小"));
if ((num >= 9 && flag) || (num < 9 && !flag)) {
money = money + cost * 2;
System.out.println("赢了" + cost * 2);
} else {
System.out.println("输了" + cost);
}
System.out.println("money=" + money);
}
private static int getCost() {// 输入金币
int cost = 0;
while (true) {
System.out.println("请输入金币:");
try {
cost = Integer.parseInt(input.nextLine());
} catch (Exception e) {
System.out.println("请确保输入的是数字!");
continue;
}
if (!(cost % lowCost == 0 && cost >= lowCost && cost <= highCost)) {
System.out.println("请输入的数字是50的倍数,且大于等于50,小于等于1000~!!");
continue;
} else {
money -= cost;
break;
}
}
return cost;
}
private static boolean xz() {// 选择 大 还是 小
boolean flag;
while (true) {
System.out.println("请输入大小:");
String temp = input.nextLine().trim();
if (temp.equals("大") || temp.equals("小")) {
flag = temp.equals("大") ? true : false; // 大-->true, 小-->flase
break;
} else {
System.out.println("请输入大或者小");
continue;
}
}
return flag;
}
}
测试
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |