小弟现在因为作业需要11点前完成!现在什么都不会,诚心求各位大大帮下忙!!
 要求
 用户要玩一个赌博游戏
 需要让用户输入他的起始资金
 然后输入他此句原意下注多少
 public static int rollDice() {
 两个骰子,随机数值
 告诉用户骰了几
 取总数
 }
 public static boolean checkWin(int comeoutRoll){
 如果总数是7,11 玩家赢
 如果总数是2,3,12玩家输
 如果什么都不是,在骰一次
 如果跟上次骰的总数一样,万家赢
 如果骰出7万家输
 如果什么都不是,循环重复在骰一次
 }
 玩家决定是否在玩如果再玩,从rollDice重新开始 

解决方案 »

  1.   

    按照你定义的两个方法,有点不合理:首先 rollDice 方法是得知结果。/**
     * 两个骰子,随机数值 告诉用户骰了几 ,取总数
     * @return
     */
    public static int rollDice() {
    Random r = new Random(System.currentTimeMillis());
    int number1 = r.nextInt(6)+1;
    int number2 = r.nextInt(6)+1;
    System.out.println("第一颗骰子:" + number1);
    System.out.println("第二颗骰子:" + number2);
    System.out.println("总数:" + (number1 + number2));
    return (number1 + number2);
    }其次是 public static boolean checkWin(int comeoutRoll) 方法来判断这个结果的输赢这里只要用一个 switch case  default 就可以合理的设计是这个方法应该返回三种情况,就是 输、赢、重新骰一次然后在 main 方法里面通过 while(true) 循环来主控,调用上述方法。大致的代码片段可以提供给你:
    /**
     * 接收用户的输入数据
     * @return
     * @throws Exception
     */
    public static String getInputFromUser() throws Exception{
    InputStreamReader temp=new InputStreamReader(System.in);
    BufferedReader input=new BufferedReader(temp);
    return input.readLine();
    }public static void main(String[] args) throws Exception {
    System.out.println("请输入用户的初始资金:");
    totleMoney = Double.parseDouble(getInputFromUser());
    while(true){
    if(用户输入一个结束标志){
    System.exit(0);
    }
    ....
    }
    }
      

  2.   

    public static boolean checkWin(int comeoutRoll) 方法建议不要返回 boolean ,以为你还有一种情况是重新骰一次可以是 int,比如 1 赢 2 输 3 重新骰一次
    或者是 Boolean  true 赢 false 输 null 重新骰一次
      

  3.   

    package play;import java.util.Scanner;public class play {
    //掷色子
    public static int rollDice() {
    int a = (int)(Math.random()*10);
    int b = (int)(Math.random()*10);
    return a+b;
    }

    //获取结果,因为7很特殊,所以不放入判断里
    public static boolean checkWin(int comeoutRoll){

     switch(comeoutRoll){
     case 11:
     return true;
     case 2:
     case 3:
     case 12:
     return false;
     default:
     return false;
     }
    }
    public static void main(String[] args) {
    String answer = "no";
    int num = 0; //计数器
    int prousSum = 0; //记录上次
    Scanner input = new Scanner(System.in);
    System.out.print("此局愿意下注多少:");
    Double money = input.nextDouble();
    do{
    int numSum = rollDice();
    System.out.println("此时:"+numSum);

    //如果上一次与当前次相同,视为玩家赢,不同则将本次的赋值给prousSum
    if(numSum == prousSum){
    num = 0;
    System.out.println("恭喜您,您赢得了此局的比赛");
    }else{
    prousSum = numSum;
    }


    if(checkWin(numSum)){
    System.out.println("恭喜您,您赢得了此局的比赛");
    num = 0;

    }else{
    if(numSum == 7 && num >0){
    System.out.println("啊哦,您输了此局的比赛");
    num = 0;
    }else if(numSum == 2 || numSum == 3 || numSum == 12){
    System.out.println("啊哦,您输了此局的比赛");
    num = 0;
    }else{
    num++;
    }
    }

    System.out.print("还要再玩吗?<y/n>");
    answer = input.next();
    }while("y".equalsIgnoreCase(answer));
    System.out.println("你结束了此局比赛");
    }
    }
      

  4.   

    不过跟3楼建议一样,建议不用boolean
      

  5.   

    再搞一个方法,用来处理输赢以后的业务逻辑处理,例如对用户初始资金的加减,赔率等等,主方法直接调用。作为新手,还可以锻炼一下面向对象,可以试着把骰子定义称为一个类,1-6 为6个属性的面还可以将每次的摇奖结果作为类进行封装,存放 LIST 里面进行保存,后期学习数据库的时候直接持久化到库里面其实简单的一个例子,自己可以挖掘学到很多东西。