packagecom.zsy.study;importjava.io.BufferedReader;importjava.io.InputStreamReader;import java.util.*;/***
*@author偶my耶
* 游戏发牌*/
public classCards {/*** 发牌函数
*@paramargs*/
private int[][] player; //玩家
private int[] total; //底牌数
public int[][] getPlayer() {returnplayer;
}public void setPlayer(int[][] player) {this.player =player;
}public int[] getTotal() {returntotal;
}public void setTotal(int[] total) {this.total =total;
}/*** 发牌函数
*@paramCardNum 总牌数
*@paramRs 人数
*@paramPs 每人的牌数
*@returnCards*/
public static Cards PlayingCards(intRs){int Ps ,CardNum; //每人的牌数//总牌数
if(Rs==4){ //如果人数是4个,则把总牌数设为108张,每人的牌数设为25张
CardNum=108;
Ps=25;
}else if(Rs==3){ //如果人数是4个,则把总牌数设为54张,每人的牌数设为17张
CardNum=54;
Ps=17;
}else{
CardNum=0;
Ps=0;
System.out.println("输入错误");
System.exit(1);
}int[] total=new int[CardNum]; // int[][] player=new int[Rs][Ps]; //定义玩家数和牌数的 数组
int leftNum=CardNum; //剩下的牌数
int ranNumber; //随机发的牌
Random random=newRandom();for (int i = 0; i < total.length; i++) { //将牌数设在1--54之间 其中1~13表示一种花色
total[i]=(i+1)%54; //,依此类推
if (total[i]==0) { //把0设为54
total[i]=54;
}
}for(int i=0;i
for(int j=0;j
ranNumber=random.nextInt(leftNum); //随机获取下标,
player[j][i]=total[ranNumber]; //将随机的数赋给玩家
total[ranNumber] = total[leftNum-1];
leftNum--;
}
}
Cards card=newCards();
card.setPlayer(player);
card.setTotal(total);returncard;
}public void print(Cards card,intrs) {intdp;for (int i = 0; i < card.getPlayer().length; i++) {
System.out.print("玩家"+(i+1)+"的牌");for (int j = 0; j < card.getPlayer()[i].length; j++) {
System.out.print(" "+card.getPlayer()[i][j]);
}
System.out.println();
}
System.out.print("底牌");if(rs==4){
dp=8; //设置底牌数
}else{
dp=3; //设置底牌数
}for (int i = 0; i < dp; i++) {
System.out.print(" "+card.getTotal()[i]);
}
System.out.println();
}public static void main(String[] args) throwsException{
System.out.println("请选择游戏:1、斗地主,2、三打哈");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));//输入语句
Integer rs =Integer.valueOf(br.readLine());
Cards card=PlayingCards(rs+2);
card.print(card,rs);
}
}