电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

java實現(xiàn)斗地主發(fā)牌功能

瀏覽:24日期:2022-08-20 15:34:43

本文實例為大家分享了java實現(xiàn)斗地主發(fā)牌的具體代碼,供大家參考,具體內(nèi)容如下

參考斗地主的游戲規(guī)則,完成一個發(fā)牌的功能(54張牌,考慮點數(shù),花色;三名玩家,其中地主比其他玩家多3張牌)

代碼如下:

牌類

import java.util.Objects;/** * 3-10 J Q K A 2 King Queen 牌類 * * @author Administrator * */public class Card { /** 牌面值 */ private String name; /** 花色 */ private String flower; /** 大小點數(shù) */ private int num; public Card() { super(); } public Card(String name, String flower, int num) { super(); this.name = name; this.flower = flower; this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getFlower() { return flower; } public void setFlower(String flower) { this.flower = flower; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } @Override public String toString() { if(Objects.nonNull(flower)) { return name + '-' + flower; } return name; }}

玩家類

public class Player { /**玩家ID*/ private int id; /**玩家姓名*/ private String name; /**是否是地主*/ private boolean boss; /**牌集合*/ private ArrayList<Card> cards = new ArrayList<Card>(); public Player(int id, String name, boolean boss, ArrayList<Card> cards) { super(); this.id = id; this.name = name; this.boss = boss; this.cards = cards; } public Player() { super(); } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isBoss() { return boss; } public void setBoss(boolean boss) { this.boss = boss; } public ArrayList<Card> getCards() { return cards; } public void setCards(ArrayList<Card> cards) { this.cards = cards; } @Override public String toString() { return name +(boss? '(地主):':'(農(nóng)名):')+ cards; }}

管理類

public class GameManage { private static Random randomGen = new Random(); /** 聲明所有牌的集合 */ private static ArrayList<Card> all = new ArrayList<Card>(); /** 用于生成牌的牌面值 */ private static String[] names = { '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A', '2', '小王','大王' }; /** 用于生成牌的花色 */ private static String[] flowers = { '紅桃', '方塊', '梅花', '黑桃' }; private ArrayList<Player> players = new ArrayList<Player>(); static { int i = 0; for (; i < names.length - 2; i++) { for (int j = 0; j < flowers.length; j++) { Card c = new Card(names[i], flowers[j], i); all.add(c); } } // 將大小王加入 all.add(new Card(names[names.length - 2], null, i++)); all.add(new Card(names[names.length - 1], null, i++)); } /** * 加入玩家 */ private void addPlayer() { Scanner sc = new Scanner(System.in); System.out.println('請輸入玩家1名稱:'); String name1 = sc.nextLine(); System.out.println('請輸入玩家2名稱:'); String name2 = sc.nextLine(); System.out.println('請輸入玩家3名稱:'); String name3 = sc.nextLine(); Player p1 = new Player(); p1.setId(1); p1.setName(name1); Player p2 = new Player(); p1.setId(2); p2.setName(name2); Player p3 = new Player(); p1.setId(3); p3.setName(name3); // 將三名玩家加入集合 players.add(p1); players.add(p2); players.add(p3); } /** * 隨機地主 */ private void randomBoss() { // 添加玩家 addPlayer(); // 隨機地主索引 int i = randomGen.nextInt(players.size()); // 設(shè)置指定位置的玩家為地主 players.get(i).setBoss(true); } public ArrayList<Player> sendCard() { randomBoss(); // 對每一名玩家遍歷 for (Player p : players) { // 先為每一位玩家隨機發(fā)17張牌 for (int i = 0; i < 17; i++) { // 隨機一張牌的索引 int cardIndex = randomGen.nextInt(all.size()); // 獲取隨機索引位置的牌 Card card = all.get(cardIndex); // 將隨機的牌加入當(dāng)前遍歷玩家的集合 p.getCards().add(card); // 從源集合中移除這張牌 all.remove(card); } } // 最后三張牌給地主 for (Player p : players) { if (p.isBoss()) { // 將all集合中的所有元素加入地主的集合 p.getCards().addAll(all); } } return players; }}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | 中视电广_短视频拍摄_短视频推广_短视频代运营_宣传片拍摄_影视广告制作_中视电广 | 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 气象监测系统_气象传感器_微型气象仪_气象环境监测仪-山东风途物联网 | 365文案网_全网创意文案句子素材站| 风电变桨伺服驱动器-风电偏航变桨系统-深圳众城卓越科技有限公司 | 优宝-汽车润滑脂-轴承润滑脂-高温齿轮润滑油脂厂家 | 短信通106短信接口验证码接口群发平台_国际短信接口验证码接口群发平台-速度网络有限公司 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 北京租车牌|京牌指标租赁|小客车指标出租 | LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 美国查特CHART MVE液氮罐_查特杜瓦瓶_制造全球品质液氮罐 | 400电话_400电话申请_888元包年_400电话办理服务中心_400VIP网 | 上海刑事律师|刑事辩护律师|专业刑事犯罪辩护律师免费咨询-[尤辰荣]金牌上海刑事律师团队 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 智能气瓶柜(大型气瓶储存柜)百科| 包头市鑫枫装饰有限公司| 多物理场仿真软件_电磁仿真软件_EDA多物理场仿真软件 - 裕兴木兰 | 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | 莱州网络公司|莱州网站建设|莱州网站优化|莱州阿里巴巴-莱州唯佳网络科技有限公司 | SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 工装定制/做厂家/公司_工装订做/制价格/费用-北京圣达信工装 | 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 防火门-专业生产甲级不锈钢钢质防火门厂家资质齐全-广东恒磊安防设备有限公司 | 通风天窗,通风气楼,屋顶通风天窗,屋顶通风天窗公司 | 欧盟ce检测认证_reach检测报告_第三方检测中心-深圳市威腾检验技术有限公司 | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 铝板冲孔网,不锈钢冲孔网,圆孔冲孔网板,鳄鱼嘴-鱼眼防滑板,盾构走道板-江拓数控冲孔网厂-河北江拓丝网有限公司 | 郑州大巴车出租|中巴车租赁|旅游大巴租车|包车|郑州旅游大巴车租赁有限公司 | 广州番禺搬家公司_天河黄埔搬家公司_企业工厂搬迁_日式搬家_广州搬家公司_厚道搬迁搬家公司 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 低温等离子清洗机(双气路进口)-嘉润万丰| ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | SMC-SMC电磁阀-日本SMC气缸-SMC气动元件展示网 | 超声波_清洗机_超声波清洗机专业生产厂家-深圳市好顺超声设备有限公司 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 护腰带生产厂家_磁石_医用_热压护腰_登山护膝_背姿矫正带_保健护具_医疗护具-衡水港盛 | 混合反应量热仪-高温高压量热仪-微机差热分析仪DTA|凯璞百科 | 电子书导航网_电子书之家_电子书大全_最新电子书分享发布平台 |