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

您的位置:首頁技術文章
文章詳情頁

Java實現斗地主案例

瀏覽:28日期:2022-09-02 15:23:50

本文實例為大家分享了Java實現斗地主的具體代碼,供大家參考,具體內容如下

import java.util.ArrayList;import java.util.Collections;public class DemoPoker { public static void main(String[] args) { /** *一、準備牌 普通牌:2 A K...3 花色:♥ ♠ ♣ ♦ 王牌:大王 小王 創建一個集合,把牌組裝之后存進去 */ String[] numbers = {'2', 'A', 'K', 'Q', 'J', '10', '9', '8', '7', '6', '5', '4', '3'}; String[] colors = {'♥', '♠', '♣', '♦'}; ArrayList<String> pokerBox = new ArrayList<>(); for (String color : colors) { for (String number : numbers) { pokerBox.add(color + number); } } pokerBox.add('大王'); pokerBox.add('小王'); /** * 二、洗牌 static void shuffle​(List<?> list) 使用默認的隨機源隨機置換指定的列表。 此處為了輸出結果工整所以沒有直接輸出集合 */ Collections.shuffle(pokerBox); for (int i = 0; i < pokerBox.size(); i++) { System.out.print(pokerBox.get(i)+'t'); if (i==26) { System.out.println(); } } System.out.println(); /** * 三、發牌 遍歷集合,用索引%3發牌,余0給玩家1,余1給玩家2,余2給玩家3 索引0-50是玩家的牌,51-53是底牌 */ //玩家一 ArrayList<String> player01 = new ArrayList<>(); //玩家二 ArrayList<String> player02 = new ArrayList<>(); //玩家三 ArrayList<String> player03 = new ArrayList<>(); //底牌 ArrayList<String> diPai = new ArrayList<>(); for (int i = 0; i < pokerBox.size(); i++) { String faces = pokerBox.get(i); if (i>=51) { diPai.add(faces); } else if (i%3==0) { player01.add(faces); } else if (i%3==1) { player02.add(faces); } else if (i%3==2) { player03.add(faces); } } /** * 四、看牌 直接輸出每位玩家的集合 */ System.out.println('張無忌'+player01); System.out.println('張翠山'+player02); System.out.println('殷素素'+player03); System.out.println('底牌'+diPai); }}

帶排序版的

package com.demo_2.poker;import java.util.Collections;import java.util.HashMap;import java.util.LinkedList;import java.util.List;public class Poker { /** *一共要四步。一、備牌 二、洗牌 三、發牌 四、看牌 目的:練習集合的用法 */ public static void main(String[] args) { /** * 第一步:備牌 使用List接口中的of()方法添加并分別創建numbers和colors集合 */ //numbers:存儲普通牌 2、A、K...3從大到小 List<String> numbers = List.of('2', 'A', 'K', 'Q', 'J', '10', '9', '8', '7', '6', '5', '4', '3'); //colors:存儲四種花色 ♥、♠、♦、♣ List<String> colors = List.of('♥', '♠', '♦', '♣'); //創建一個Map集合存儲索引和組裝好的牌 HashMap<Integer, String> pokerBox = new HashMap<>(); //創建一個List集合儲存牌的索引 LinkedList<Integer> pokerIndex = new LinkedList<>(); //先把大王、小王和下標分別放進Map的鍵和值里面,再向LinkedList里面存儲下標,下標增加1 int index = 0; pokerBox.put(index, '大王'); pokerIndex.add(index); index++; pokerBox.put(index, '小王'); pokerIndex.add(index); index++; //組裝牌:遍歷兩個List集合,使用Map接口中的put()方法給pokerBox添加鍵和值,并給LinkedList傳下標 for (String number : numbers) { for (String color : colors) { pokerBox.put(index, color + number); pokerIndex.add(index); index++; } } /** * 第二步:洗牌 使用Collocations類中的shuffler方法,傳遞參數pokerIndex */ Collections.shuffle(pokerIndex); /** * 第三步:發牌 創建四個List集合,分別存儲三位玩家和底牌 使用for循環遍歷pokerIndex,i%3結果為0的給玩家1,1的給玩家2,2的給玩家3 */ LinkedList<Integer> player01 = new LinkedList<>(); LinkedList<Integer> player02 = new LinkedList<>(); LinkedList<Integer> player03 = new LinkedList<>(); LinkedList<Integer> diPai = new LinkedList<>(); for (int i = 0; i < pokerIndex.size(); i++) { Integer in = pokerIndex.get(i); if (i >= 51) { diPai.add(in); } else if (i % 3 == 0) { player01.add(in); } else if (i % 3 == 1) { player02.add(in); } else if (i % 3 == 2) { player03.add(in); } } //給玩家的牌排序,使用Collocations接口中的sort()方法排序 Collections.sort(player01); Collections.sort(player02); Collections.sort(player03); Collections.sort(diPai); /** *第四步:看牌 遍歷排過序的List集合作為Map集合的鍵值獲取對應的值 為提高代碼復用性定義一個方法代替 */ print('令狐沖',player01,pokerBox); print('諸葛瑾',player02,pokerBox); print('司馬懿',player03,pokerBox); print('底牌',diPai,pokerBox); } /** *看牌的方法: 參數: String name LinkedList<Integer> list HashMap<Integer, String> map */ public static void print(String name,LinkedList<Integer> list,HashMap<Integer, String> map){ System.out.print(name+':'); for (Integer key : list) { System.out.print(map.get(key)+' '); } System.out.println(); }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 合肥触摸一体机_触摸查询机厂家_合肥拼接屏-安徽迅博智能科技 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 蓝鹏测控平台 - 智慧车间系统 - 车间生产数据采集与分析系统 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 小港信息港-鹤壁信息港 鹤壁老百姓便民生活信息网站 | 汝成内控-行政事业单位内部控制管理服务商 | 路面机械厂家 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 辽宁资质代办_辽宁建筑资质办理_辽宁建筑资质延期升级_辽宁中杭资质代办 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 德州网站制作 - 网站建设设计 - seo排名优化 -「两山建站」 | 蔬菜配送公司|蔬菜配送中心|食材配送|饭堂配送|食堂配送-首宏公司 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 接地电阻测试仪[厂家直销]_电缆故障测试仪[精准定位]_耐压测试仪-武汉南电至诚电力设备 | 动物解剖台-成蚊接触筒-标本工具箱-负压实验台-北京哲成科技有限公司 | 志高装潢官网-苏州老房旧房装修改造-二手房装修翻新 | 宽带办理,电信宽带,移动宽带,联通宽带,电信宽带办理,移动宽带办理,联通宽带办理 | 【365公司转让网】公司求购|转让|资质买卖_股权转让交易平台 | 合景一建-无尘车间设计施工_食品医药洁净车间工程装修总承包公司 | 东莞海恒试验仪器设备有限公司| 冷却塔风机厂家_静音冷却塔风机_冷却塔电机维修更换维修-广东特菱节能空调设备有限公司 | 高尔夫球杆_高尔夫果岭_高尔夫用品-深圳市新高品体育用品有限公司 | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 专业深孔加工_东莞深孔钻加工_东莞深孔钻_东莞深孔加工_模具深孔钻加工厂-东莞市超耀实业有限公司 | 生产加气砖设备厂家很多,杜甫机械加气砖设备价格公道 | 皮带机-带式输送机价格-固定式胶带机生产厂家-河南坤威机械 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵| LHH药品稳定性试验箱-BPS系列恒温恒湿箱-意大利超低温冰箱-上海一恒科学仪器有限公司 | 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 冷镦机-多工位冷镦机-高速冷镦机厂家-温州金诺机械设备制造有限公司 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 铸钢件厂家-铸钢齿轮-减速机厂家-淄博凯振机械有限公司 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | CXB船用变压器-JCZ系列制动器-HH101船用铜质开关-上海永上船舶电器厂 |