java发牌程序_java开发之发牌小程序

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);

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值