自己想的斗地主发牌逻辑

斗地主发牌逻辑

用java实现

//发牌
   public static void main(String[] args) {
      double d=100;
       Mytest2 mytest2=new Mytest2();
       List<Integer> player1=new LinkedList();
       List<Integer> player2=new LinkedList();
       List<Integer> player3=new LinkedList();
 
       int card1=(int)(Math.random()*55+1);
       int card2=(int)(Math.random()*55+1);
       int card3=(int)(Math.random()*55+1);
       /*System.out.println(card1);*/
       for (int i = 1; i < 55; i++) {
           if (i!=card1&&i!=card2&&i!=card3){
               int randomplayer=(int)(Math.random()*3+1);
               /*System.out.println(randomplayer);*/
               switch (randomplayer){
                   case 1:
                       if (player1.size()==17){
                           if (player2.size()==17){
                               if (player3.size()==17){
                                   return;
                               }else{
                               player3.add(i);
                               break;
                               }
                           }else{
                           player2.add(i);
                               break;
                           }
                       }else{
                       player1.add(i);
                         break;}
                   case 2:
                       if (player2.size()==17){
                           if (player1.size()==17){
                               if (player3.size()==17){
                                   return;
                               }else{
                               player3.add(i);
                                   break;
                               }
                           }else{
                           player1.add(i);
                               break;
                           }
                       }else{
                       player2.add(i);
                       break;}
                   case 3:
                       if (player3.size()==17){
                       if (player1.size()==17){
                           if (player2.size()==17){
                               return;
                           }else{
                           player2.add(i);
                               break;}
                       }else{
                       player1.add(i);
                           break;
                       }
                   }else{
                       player3.add(i);
                       break;}
               }
           }
       }
       System.out.print(mytest2.hanle(card1));
       System.out.print(mytest2.hanle(card2));
       System.out.println(mytest2.hanle(card3));
       System.out.print("player1:");
       for (int i = 0; i < 17; i++) {
           System.out.print(mytest2.hanle(player1.get(i))+"  ");
       }
       System.out.println("");
       System.out.print("player2:");
       for (int i = 0; i < 17; i++) {
           System.out.print(mytest2.hanle(player2.get(i))+"  ");
       }
       System.out.println("");
       System.out.print("player3:");
       for (int i = 0; i < 17; i++) {
           System.out.print(mytest2.hanle(player3.get(i))+"  ");
       }

   }

还有一个将数字转换成牌的类

public class Mytest2 {
  public Object hanle(int i){
     Object o=new Object();
      if(i>40){
         String[] s=new String[10];
         s[1]="J";
         s[2]="Q";
         s[3]="K";
         if (i==53){
             return "小鬼";
         }
          if (i==54){
              return "大鬼";
          }
          i=i-40;
          int num=i/4+1;
          int color=i%4;
          if (color==1){
              o=s[num]+"♢";
          }
          if (color==2){
              o=s[num]+"♡";
          }


          if (color==3){
              o=s[num]+"♠";
          }


          if (color==0){
              o=s[num-1]+"♣";
          }
          return o;

      }
      int num=i/4+1;
      int color=i%4;

      if (color==1){
          o=num+"♢";
      }


      if (color==2){
          o=num+"♡";
      }


      if (color==3){
          o=num+"♠";
      }


      if (color==0){
          o=(num-1)+"♣";
      }
  return o;
  }}

输出结果:`Q♡4♡2♡
player1:1♠ 3♢ 3♡ 3♣ 5♠ 7♢ 7♣ 8♡ 9♠ 10♡ J♡ Q♢ Q♣ K♢ K♡ K♠ 小鬼

player2:1♢ 2♢ 4♢ 4♣ 6♢ 6♠ 6♣ 7♡ 7♠ 8♢ 8♣ 9♢ 9♡ 9♣ 10♠ 10♣ J♢

player3:1♡ 1♣ 2♠ 2♣ 3♠ 4♠ 5♢ 5♡ 5♣ 6♡ 8♠ 10♢ J♠ J♣ Q♠ K♣ 大鬼
`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值