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

    }

}

运行结果:

时间: 2024-11-09 17:30:37

java开发之发牌小程序的相关文章

关于java洗牌发牌小程序

package play.card; public class Card { public String num; public String suit; public Card(String num,String suit) { this.num = num; this.suit = suit; } public Card() { super(); } @Override public String toString() { String str = suit+" "+ num; r

java版的QQ小程序

转载自:http://blog.csdn.net/lihongxun945/article/details/6114290 这是一个简单的java版的QQ小程序. 包括一个简单的服务器和一个简单的客户端. 运行时,先运行服务器,然后在运行客户端,就可以进行聊天了. 默认的配置是localhost,端口4545,更改ip就可以在两天电脑上进行聊天了. 目前不支持内网和外网之间的访问,也不支持多人聊天. 因为这只是一个简单的例子,感兴趣的同学可以通过改进,实现多人聊天和内外网之间的访问. 效果图:

开发一个微笑小程序示例

一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可.2.注册成功后进入首页,在 小程序发布流程->小程序开发与管理->配置服务器中,点击“开发者设置”.3.会获得一个AppID,记录AppID,后面创建项目时会用到. 注意:如果要以非管理员微信号在手机上体验该小程序,那么我们还需要操作“绑定开发者”.即在“用户身份”-“开发者”模块,绑定上需要体验该小程序的微信号.本教程默认注册帐号.体验都是使用管理员微信

Java Static关键字之小程序

对于学习static我们先来看两个例子: 1 public class Cat { 2 private static int sid = 0; 3 private String name; 4 int id; 5 Cat(String name) { 6 this.name = name; 7 id = sid++; 8 } 9 public void info(){ 10 System.out.println 11 ("My name is "+name+" No.&quo

小程序开发公司,小程序开发看这里

小程序开发公司,小程序开发看这里,分销商城系统开发找梁经理(153微2202电6891),分销商城软件开发,分销商城系统平台. 在网络经济中,由于外界环境的变化极其迅速,推动公司发展的不再是效率,而是高度的适应性.应该把公司看成是有机体,它可以感受环境.适应环境,甚至改变环境.市场环境则是一种选择机制,它可以判定哪种有机体更适合生存.公司可通过下列几种手段来设计自己的组织结构,使之具有高度的适应性. 1.实现订单监控.处理 通过不同的角度,订单添加,物流,支付等各方面对订单进行监控和处理,能有效

Java仿短视频小程序全栈开发实战视频教程+课程代码

第1章 微信小程序初学入门第2章 微信小程序的基础组件学习第3章 form表单组件与小程序前后端通信第4章 产品介绍与数据库规划介绍第5章 开发用户登录注册与用户信息第6章 上传视频业务流程开发第7章 视频展现页开发第8章 开发视频的留言板第9章 开发短视频后台办理体系第10章 项目上线与发布 下载地址:百度网盘 原文地址:http://blog.51cto.com/13870071/2142671

「小程序JAVA实战」微信小程序工程结构了解(五)

转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-05/ 微信小程序工程结构 audio,button,canvas,checkbox 都是由4个文件构成,而且他们的目录名称和文件内部的名称「保持一致」,这点特别重要. 主目录结构 app.js 外部的全局的js,可以当作一个父类,把这个全局文件理解成java里面的一个类,这样理解对于java开发的容易理解些. app.json 全局的配置文件,有点类似java web开发的resource目录下

微信开发(2)---微信小程序开发实战part1

微信开发现在来说,简单可以概括为两部分,微信公众号和微信小程序. 微信公众号的技术已经非常成熟.分为服务号和订阅号.简单的.可以弄一个个人订阅号,在编辑模式下就可以实现推送图文.自动回复.自定义菜单的常用功能.切换至开发模式,可以搭服务器,使用php语言及各种成熟接口完成自己想要实现的功能,相对而言非常方便.大家对公众号感兴趣的可以自己去注册个个人订阅号探索一下,微信公众平台跳转: https://mp.weixin.qq.com/ 再来说微信小程序,16年初上线示例,到现在技术已经基本趋于成熟

java 学习 ——文本编辑框小程序

简易的文本编辑框小程序: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; class TextEditorFrame extends JFrame{ File file=null; Color color=Color.red; TextEditorFrame(){ initTextPane(); initAboutDialog(); initToolBar(); initMen