av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

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

Java實(shí)現(xiàn)斗地主案例

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

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

import java.util.ArrayList;import java.util.Collections;public class DemoPoker { public static void main(String[] args) { /** *一、準(zhǔn)備牌 普通牌:2 A K...3 花色:♥ ♠ ♣ ♦ 王牌:大王 小王 創(chuàng)建一個(gè)集合,把牌組裝之后存進(jìn)去 */ 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) 使用默認(rèn)的隨機(jī)源隨機(jī)置換指定的列表。 此處為了輸出結(jié)果工整所以沒有直接輸出集合 */ 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(); /** * 三、發(fā)牌 遍歷集合,用索引%3發(fā)牌,余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 { /** *一共要四步。一、備牌 二、洗牌 三、發(fā)牌 四、看牌 目的:練習(xí)集合的用法 */ public static void main(String[] args) { /** * 第一步:備牌 使用List接口中的of()方法添加并分別創(chuàng)建numbers和colors集合 */ //numbers:存儲(chǔ)普通牌 2、A、K...3從大到小 List<String> numbers = List.of('2', 'A', 'K', 'Q', 'J', '10', '9', '8', '7', '6', '5', '4', '3'); //colors:存儲(chǔ)四種花色 ♥、♠、♦、♣ List<String> colors = List.of('♥', '♠', '♦', '♣'); //創(chuàng)建一個(gè)Map集合存儲(chǔ)索引和組裝好的牌 HashMap<Integer, String> pokerBox = new HashMap<>(); //創(chuàng)建一個(gè)List集合儲(chǔ)存牌的索引 LinkedList<Integer> pokerIndex = new LinkedList<>(); //先把大王、小王和下標(biāo)分別放進(jìn)Map的鍵和值里面,再向LinkedList里面存儲(chǔ)下標(biāo),下標(biāo)增加1 int index = 0; pokerBox.put(index, '大王'); pokerIndex.add(index); index++; pokerBox.put(index, '小王'); pokerIndex.add(index); index++; //組裝牌:遍歷兩個(gè)List集合,使用Map接口中的put()方法給pokerBox添加鍵和值,并給LinkedList傳下標(biāo) for (String number : numbers) { for (String color : colors) { pokerBox.put(index, color + number); pokerIndex.add(index); index++; } } /** * 第二步:洗牌 使用Collocations類中的shuffler方法,傳遞參數(shù)pokerIndex */ Collections.shuffle(pokerIndex); /** * 第三步:發(fā)牌 創(chuàng)建四個(gè)List集合,分別存儲(chǔ)三位玩家和底牌 使用for循環(huán)遍歷pokerIndex,i%3結(jié)果為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集合的鍵值獲取對(duì)應(yīng)的值 為提高代碼復(fù)用性定義一個(gè)方法代替 */ print('令狐沖',player01,pokerBox); print('諸葛瑾',player02,pokerBox); print('司馬懿',player03,pokerBox); print('底牌',diPai,pokerBox); } /** *看牌的方法: 參數(shù): 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(); }}

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

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 欧美久久不卡 | 99热这里有精品 | 国产精品欧美一区二区三区 | 国产精品五区 | 97精品超碰一区二区三区 | 三级黄色片在线播放 | 狠狠爱综合| 亚洲成人在线免费 | www.国产.com| 自拍视频一区二区三区 | 久久国产精品久久 | 欧美性猛交一区二区三区精品 | 福利视频一区 | 国产精品久久久久久久久久久久冷 | 91精品国产欧美一区二区 | 欧美精品一区在线 | 红色av社区 | 一区欧美 | 色www精品视频在线观看 | 亚洲精品中文字幕在线 | 中文字幕在线一区二区三区 | 欧美一二区| 日韩精品网站 | 97视频在线免费 | 999观看免费高清www | 亚洲精品久久久久久首妖 | 国产成人99久久亚洲综合精品 | 91av在线免费观看 | 日日久| 国产成人在线视频免费观看 | 一区久久| 成人免费观看视频 | 午夜合集| 国外成人在线视频 | 免费午夜视频 | www.99热 | 色婷婷九月 | 国外成人在线视频网站 | 91视频观看| 日本久久综合网 | 欧美日韩亚洲国产 |