欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

洗牌并按规则分发给四玩家(非图形),洗牌分发,package Chem

来源: javaer 分享于  点击 5015 次 点评:40

洗牌并按规则分发给四玩家(非图形),洗牌分发,package Chem


package Cheman;    public class PlayPai{        public static void main (String[] args){            new Poker();        }    }   class Poker{     public int pai[][]=new int[13][4];//创建一个二维数组,第一维存放点数第二维存放花色     public Poker(){  //构造方法        this.JianPai();        this.XiPai();        this.FaPai();    }    public void JianPai(){  //建牌,使用二重循环从1-52对二维数组共52个变量赋值        int count=1;        for(int i=0;i<=12;i++){            for(int j=0;j<=3;j++){                pai[i][j]=count;                count++;            }        }        System.out.println("建牌完毕……");    }    public void XiPai(){ //每次随机出2张牌 pai[row1][col1],pai[row2][col2],如果不相等则互换,循环200次        double a,b;        int row1,col1,row2,col2,i;        int zhongjianshu;        for(i=1;i<=200;i++){             a=Math.random()*13;             row1=(int)(a);   //row1,row2范围从0-12             b=Math.random()*4;             col1=(int)(b);  //col1,col2范围从0-3             a=Math.random()*13;             row2=(int)(a);             b=Math.random()*4;             col2=(int)(b);                  if(row1!=row2||col1!=col2){ //两变量互换                 zhongjianshu=pai[row1][col1];                 pai[row1][col1]=pai[row2][col2];                 pai[row2][col2]=zhongjianshu;             }                   }        System.out.println("洗牌完毕……");    }    public void FaPai(){ //发牌:1.对各玩家手中的牌进行大小排序 2.将排序好的牌发出并转换成中文名        int wanjia[][]=new int[4][13]; //创建一个4行13列二维数组,每一行存放每个玩家的13张牌,并按大小排序        int i,j,z,min;        for(i=0;i<4;i++){//原来的二维数组pai[][]赋值给wanjia[][]            for(j=0;j<13;j++){                wanjia[i][j]=pai[j][i];                }            }        //用选择排序法对各个玩家的牌进行升序排序        for(i=0;i<4;i++){            for(j=0;j<13;j++){                min=wanjia[i][j];                for(z=j+1;z<13;z++){                    if(wanjia[i][z]<min){                        min=wanjia[i][z];                        wanjia[i][z]=wanjia[i][j];                        wanjia[i][j]=min;                        }                    }                }        }        //开始发牌并转换成中文名            int yushu;//余数            int shang;//商            int save[]=new int[8];//一维数组,存放A,2,使其能在3-K牌输出后再输出            int count;//存放一维数组save变量数            for(i=0;i<4;i++){                count=0;                System.out.print("玩家"+(i+1)+":");                for(j=0;j<13;j++){                    yushu=(wanjia[i][j])%4;                    shang=((wanjia[i][j]-1)/4);                    if(shang==0||shang==1){ //如果要输出的牌色为A或2,则将其存入save数组中,待3-K输出后再输出                            save[count]=wanjia[i][j];                            count++;                            continue;                    }                    switch(yushu){ //检验花色                    case 0:System.out.print("方块");break;                    case 1:System.out.print("梅花");break;                    case 2:System.out.print("红桃");break;                    case 3:System.out.print("黑桃");break;                    }                    switch(shang){ //检验点数                    case 0:System.out.print("A  ");break;                    case 10:System.out.print("J  ");break;                    case 11:System.out.print("Q  ");break;                    case 12:System.out.print("K  ");break;                    default:System.out.print((shang+1)+"  ");                    }                }                //输出save数组,把A和2牌输出                for(j=0;j<count;j++){                    yushu=(save[j])%4;                    shang=((save[j]-1)/4);                    switch(yushu){                    case 0:System.out.print("方块");break;                    case 1:System.out.print("梅花");break;                    case 2:System.out.print("红桃");break;                    case 3:System.out.print("黑桃");break;                    }                    if(shang==0)                        System.out.print("A  ");                    else                        System.out.print((shang+1)+"  ");                    }                System.out.println();                }            }      }//该片段来自于http://byrx.net
相关栏目:

用户点评