问题描述
有9个人玩抛骰子游戏,每人有十次机会,每一次抛两个骰子(骰子的点数1-6 也就是两次1-6的随机数)
如果骰子1和骰子2的点数均位1那么打印single并返回1 详细如图所示
让我们回到前面的条件9个人玩游戏,每个人有十次机会玩骰子,每次机会抛两个骰子,如果一个人在他的十次机会中有三个strike返回值(到三为止多了不要)那么给这个人一朵小红花
如果这9个人分别用掉他们的10次机会后,有3朵小红花则游戏结束,如果不足3朵重新开始游戏
这个游戏不会写了,不知道重新开始游戏的代码如何写
注意几个函数的用途是固定的
bat:抛骰子1 骰子2 根据图中的条件打印提示和返回对应的值
BatterTakeTurn: 每个玩家是否获得小红花,如果符合获得小红花的条件返回true否则返回false
问题出现的环境背景及自己尝试过哪些方法
相关代码
目前完成的代码
import java.lang.String;
import java.util.Random;
public class Butterup3 {
public static void main(String[] args) {
// 定义一个array包含9个人名
String[] names = {"Amy", "Bob", "Carl", "Diana", "Ed", "Francis", "Gerogia", "Hank", "lzzy"};
int tune = 0;
for(int i = 0;i
Boolean r = BatterTakeTurn(names[i]);
if(r == true) {
tune = tune+1;
if(tune ==3) {
break;
}
}
}
}
public static boolean BatterTakeTurn(String args) {
System.out.println(args);
int StrikeTotal = 0;
for(int i=0;i<10;i++){
int result = bat();
if(result == -1) {
StrikeTotal = StrikeTotal+1;
if(StrikeTotal==3) {
System.out.println("Strike out");
break;
}
}
}
return StrikeTotal==3?true:false;
}
public static int bat() {
// java语言本身提供的获取随机数方法
Random rand = new Random();
// 骰子1 生成1-6之间的随机数
int x = rand.nextInt(6) + 1;
// 骰子2 生成1-6之间的随机数
int y = rand.nextInt(6) + 1;
if(x == 1 && y == 1) { //骰子1与骰子2均为1 &&表示并且
System.out.println("Rolled " + x + " " + y + " " + "single");
return 1;
}else if (x==2 && y == 2){ //骰子1与骰子2均为2 &&表示并且
System.out.println("Rolled " + x + " " + y + " " + "double");
return 2;
}else if(x == 3 && y == 3) { //骰子1与骰子2均为3 &&表示并且
System.out.println("Rolled " + x + " " + y + " " + "triple");
return 3;
}else if(x==4 && y== 4) { //骰子1与骰子2均为4 &&表示并且
System.out.println("Rolled " + x + " " + y + " " + "Home run");
return 4;
}else { //以上几种情况都不属于 则判断骰子1加骰子2的和是否是奇偶数
int sum = x + y;//骰子1 和 骰子2 相加的和
if(sum%2 != 0) { //如果和为奇数的情况
System.out.println("Rolled " + x + " " + y + " " + "Ball");
return -2;
}else {//既然不是奇数那么为偶数 这里是偶数的情况
System.out.println("Rolled " + x + " " + y + " " + "Strike");
return -1;
}
}
}
}
你期待的结果是什么?实际看到的错误信息又是什么?