首页 > 代码库 > java开发之发牌小程序

java开发之发牌小程序

发牌规则

     黑桃按照从小到大依次为:1-13  

   红桃按照从小到大依次为:14-26  

   梅花按照从小到大依次为:27-39  

   方块按照从小到大依次为:40-52  

   小王53   大王54

代码实现:

package com.zsy.study;import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;/** *  * @author 偶my耶 *            游戏发牌 */public class Cards {    /**     * 发牌函数     * @param args     */    private int[][] player;    //玩家    private int[] total; // 底牌数    public int[][] getPlayer() {        return player;    }    public void setPlayer(int[][] player) {        this.player = player;    }    public int[] getTotal() {        return total;    }    public void setTotal(int[] total) {        this.total = total;    }        /**     *   发牌函数     * @param CardNum 总牌数     * @param Rs 人数     * @param Ps 每人的牌数     * @return Cards      */    public static Cards PlayingCards(int Rs){        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=new Random();        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<player[0].length;i++){        //随机分配牌            for(int j=0;j<player.length;j++){                ranNumber=random.nextInt(leftNum);        //随机获取下标,                player[j][i]=total[ranNumber];            //将随机的数赋给玩家                total[ranNumber] = total[leftNum-1];                    leftNum--;            }        }            Cards card=new Cards();                    card.setPlayer(player);                card.setTotal(total);                return card;    }    public void print(Cards card,int rs) {        int dp;        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) throws Exception{        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);    }    }

运行结果:

技术分享

java开发之发牌小程序