Craps游戏的java实现

游戏人数:1人
手中握有骰子的人叫做掷骰子的人(Shooter)。如果他掷出7点或者11点,他就赢了。如果他掷出2点,3点,或者12点,他就输了。如果他掷出4点,5点,6点,8点,9点,或者10点,庄家会在某个掷出的点数上放置一个大的“ON”按钮。掷骰子的人继续掷骰子,直

 到他掷出按钮所指示的点数, 这时他就赢了,否则如果在这之前掷出了7点,则他就输。


 

 

发现这个游戏挺有趣的,不断的掷骰子,不断的概率决定你获胜或失利。

第一步 先确定类:

      这里简单考虑,只考虑二个类:骰子类,Craps游戏类:

class Die () { 
//骰子类 
} 

public class Craps() { 
//Craps游戏类 
}

 第二步  确定类的字段和方法

     骰子类和昨天的那个Beelte游戏中的一样,不写了。

    Craps类的字段有:按键掷骰子(INPUT)、两个骰子(die1,die2)、游戏状态如赢、败、平局(status)、点数(sumOfTopFace)、按钮所指的数(point)。方法有:构造方法、玩游戏(play())。

DieCraps
topFace:int

INPUT:java.util.Scanner

die1:Die

die2:Die

status:int

sumOfTopFace:int

point:int

Die()

getTopFace():int

roll():int

Craps();

play():void

main(String[]):void

第三步:Craps类的实现(Die类的实现同Beetle游戏中一样)。

public class Craps {
    public static final java.util.Scanner INPUT  
             = new java.util.Scanner(System.in); 
    private Die die1,die2; 
    private int point,sumOfTopFace,status; 
    private final int WON,LOST,GOING; //定义胜、负、平三种状态   

   public Craps() { 
        die 1 = new Die(); 
        die 2 = new Die(); 
        WON = 1; 
        LOST = 2; 
        GOING = 3; 
        point = 0;     
        sumOfTopFace = 0; 
        status = GOING; //初始为平局 
   }

     public void play() {
         INPUT.nextLine();
         die1.roll(); 
         INPUT.nextLine(); 
         die2.roll(); 
         sumOfTopFace = die1.getTopFace() + die2.getTopFace();      System.out.println("你掷到" + sumOfTopFace + "点"); 
        switch(sumOfTopFace) { 
              case 7:
              case 11: 
                     status = WON; 
                     break; 
              case 2: 
              case 3: 
              case 12: 
                     status = LOST; 
                     break;
             default: 
                     status = GOING; 
                     point = sumOfTopFace; //就在这个地方放个大的ON按钮。          System.out.println("我的得分是:" + point);
                     break; 
        }
     
        while(status ==GOING) //当是平局时,采取下面行动            System.out.println("现在是平局,如果你再掷到刚才那个点数,你就获胜,但当你掷出7就你就输!"); 
            INPUT.nextLine(); 
            die1.roll(); 
            INPUT.nextLIne(); 
            die2.roll(); 
            sumOfTopFace = die1.getTopFace() + die2.getTopFace();   System.out.println("再次掷到" + sumOfTopFace + "点"); 
            if(sumOfTopFace ==point) { 
                   status = WON; 
            } else { if(sumOfTopFace == 7) { 
                                status = LOST; 
                                break; 
                           }
               }

        if(status == WON) { 
                 System.out.println("恭喜,你赢了!"); 
       } else { 
                 System.out.println("很不幸,你输了!"); 
           } 
       }

   public static void main(String[] args) { 
          System.out.println("\n欢迎玩Craps游戏!按键开始掷骰子(按二次算一局)");
          Craps game = new Craps(); 
          game.play(); 
   } 
}

 

 

 运行结果如图:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Craps是一种骰子游戏,玩家在游戏中下注并掷骰子。Craps的胜率取决于玩家下注的类型和掷骰子的结果。以下是一些常见的下注类型和它们的胜率: 1. Pass Line Bet(赢线赌注):这是最常见的下注类型,玩家在第一次掷骰子时下注。如果掷出7或11,则玩家获胜;如果掷出2、3或12,则玩家输掉赌注;如果掷出4、5、6、8、9或10,则这个数字成为“点数”,玩家需要在后续的掷骰子中再次掷出这个点数才能获胜。胜率约为49.29%。 2. Don't Pass Bet(输线赌注):这是与Pass Line Bet相反的下注类型,如果第一次掷骰子时掷出2或3,则玩家获胜;如果掷出7或11,则玩家输掉赌注;如果掷出12,则平局;如果掷出4、5、6、8、9或10,则这个数字成为“点数”,玩家需要在后续的掷骰子中掷出7才能获胜。胜率约为47.96%。 3. Come Bet(进场赌注):这是类似于Pass Line Bet的下注类型,但是可以在任何时候下注。如果掷出7或11,则玩家获胜;如果掷出2、3或12,则玩家输掉赌注;如果掷出4、5、6、8、9或10,则这个数字成为“点数”,玩家需要在后续的掷骰子中再次掷出这个点数才能获胜。胜率约为49.29%。 4. Don't Come Bet(反进场赌注):这是类似于Don't Pass Bet的下注类型,但是可以在任何时候下注。如果掷出2或3,则玩家获胜;如果掷出7或11,则玩家输掉赌注;如果掷出12,则平局;如果掷出4、5、6、8、9或10,则这个数字成为“点数”,玩家需要在后续的掷骰子中掷出7才能获胜。胜率约为47.96%。 需要注意的是,Craps是一种纯粹的运气游戏,没有任何技巧可以提高玩家的胜率。以上胜率仅供参考,实际胜率可能会因为不同的规则和下注类型而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值