[Java] 打地主三个人的牌 →→→→→进入此内容的聊天室

来自 , 2021-02-24, 写在 Java, 查看 107 次.
URL http://www.code666.cn/view/1abb1e1e
  1. public class Example_01 {
  2.         int[]  total=new int[54];
  3.         int player1[]=new int[17];
  4.         int player2[]=new int[17];
  5.         int player3[]=new int[20];
  6. String Colors[]=new String[]{"黑桃","红桃","方块","梅花"};
  7.         private String getColors(int number){
  8.                 int index=number%4;
  9.                 return Colors[index];
  10.         }
  11.         String mostPokers[]=new String[]{"2","3","4","5","6","7","8","9","10","J","Q","K","A","大王","小王"};
  12.         private String getsNumber(int pokersNumber){
  13.                 if(pokersNumber<52){
  14.                         int onePokers=pokersNumber/4;
  15.                         return getColors(pokersNumber)+mostPokers[onePokers];
  16.                 }else if(pokersNumber==52){
  17.                         return mostPokers[mostPokers.length-2];
  18.                 }else if(pokersNumber==53){
  19.                         return mostPokers[mostPokers.length-1];
  20.                 }
  21.                 return null;
  22.         }
  23.         public void playGame(){
  24.                 for(int i=0;i<total.length;i++){
  25.                         total[i]=-1;
  26.                 }
  27.                 for(;;){
  28.                         int number=(int)(Math.random()*54);
  29.                         for(int j=0;j<total.length;j++){
  30.                                 int number2=total[j];
  31.                                 if(number==number2){
  32.                                         break;
  33.                                 }
  34.                                 if(number2==-1){
  35.                                         total[j]=number;
  36.                                         break;
  37.                                 }
  38.                         }
  39.                         if(total[total.length-1]!=-1){
  40.                                 break;
  41.                         }
  42.                 }
  43.                 sumPokers(total);
  44.         }
  45.         private void sumPokers(int[] total2) {
  46.         int number3=(int)(Math.random()*52);
  47.         System.out.println("地主牌为:"+getsNumber(total2[number3]));
  48.         int diZhu=number3%3;
  49.         int player1[]=new int[17];
  50.         int player2[]=new int[17];
  51.         int player3[]=new int[17];
  52.         for(int i=0;i<total2.length;i++){
  53.                 if(i<total2.length-3){
  54.                         int players=i%3;
  55.                         int peoplePokers=i%17;
  56.                         if(players==0){
  57.                                 player1[peoplePokers]=total2[i];
  58.                         }else if(players==1){
  59.                                 player2[peoplePokers]=total2[i];
  60.                         }else{
  61.                                 player3[peoplePokers]=total2[i];
  62.                                 }
  63.                         }else{
  64.                                 if(diZhu==0){
  65.                                         int diZhuPokers[]=new int[20];
  66.                                 for(int j=0;j<player1.length;j++){
  67.                                         diZhuPokers[j]=player1[j];
  68.                                 }
  69.                                 for(int k=17;k<20;k++){
  70.                                         diZhuPokers[k]=total2[k+34];
  71.                                         }
  72.                                 player1=diZhuPokers;
  73.                                 System.out.println("\n\n玩家1为地主:");
  74.                                 }else if(diZhu==1){
  75.                                         int diZhuPokers[]=new int[20];
  76.                                         for(int j=0;j<player2.length;j++){
  77.                                                 diZhuPokers[j]=player2[j];
  78.                                         }
  79.                                         for(int k=17;k<20;k++){
  80.                                                 diZhuPokers[k]=total2[k+34];
  81.                                         }
  82.                                         player2=diZhuPokers;
  83.                                 System.out.println("\n\n玩家2为地主:");
  84.                                 }else{
  85.                                         int diZhuPokers[]=new int[20];
  86.                                         for(int j=0;j<player3.length;j++){
  87.                                                 diZhuPokers[j]=player3[j];
  88.                                         }
  89.                                         for(int k=17;k<20;k++){
  90.                                                 diZhuPokers[k]=total2[k+34];
  91.                                         }
  92.                                         player3=diZhuPokers;
  93.                                 System.out.println("\n\n玩家3为地主:");
  94.                                 }
  95.                                 player1=paiXu(player1);
  96.                                 player2=paiXu(player2);
  97.                                 player3=paiXu(player3);
  98.                                 System.out.println("地主是:"+(player1.length==20?"玩家1为地主":player2.length==20?"玩家2为地主":player3.length==20?"玩家3为地主":""));
  99.                                 System.out.println("玩家1的牌为:");
  100.                                 for(int player1Num=0;player1Num<player1.length;player1Num++){
  101.                                         System.out.print(" "+getsNumber(player1[player1Num]));
  102.                                 }
  103.                                 System.out.println("\n\n玩家2的牌为:");
  104.                                 for(int player2Num=0;player2Num<player2.length;player2Num++){
  105.                                         System.out.print(" "+getsNumber(player2[player2Num]));
  106.                                 }
  107.                                 System.out.println("\n\n玩家3的牌为:");
  108.                                 for(int player3Num=0;player3Num<player3.length;player3Num++){
  109.                                         System.out.print(" "+getsNumber(player3[player3Num]));
  110.                                 }
  111.                                 break;
  112.                         }
  113.                 }
  114.         }
  115.         private int[] paiXu(int[] players) {
  116.                 int nullNumber=-1;
  117.                 for(int i=0;i<players.length;i++){
  118.                         for(int j=0;j<players.length;j++){
  119.                                 if(players[i]<players[j]){
  120.                                         nullNumber=players[i];
  121.                                         players[i]=players[j];
  122.                                         players[j]=nullNumber;
  123.                                 }
  124.                         }
  125.                 }
  126.                 return players;
  127.         }
  128. }
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135. public class Main {
  136.         public static void main(String args[]){
  137.                 Example_01 start=new Example_01();
  138.                 start.playGame();
  139.         }
  140. }
  141.  

回复 "打地主三个人的牌"

这儿你可以回复上面这条便签

captcha