午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

java使用HashMap實(shí)現(xiàn)斗地主(有序版)

瀏覽:79日期:2022-08-15 18:23:59

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

案例介紹

按照斗地主的規(guī)則,完成洗牌發(fā)牌的動(dòng)作。 具體規(guī)則:

使用54張牌打亂順序,三個(gè)玩家參與游戲,三人交替摸牌,每人17張牌,最后三張留作底牌。

案例分析

1、準(zhǔn)備牌:

每張撲克牌牌由花色和數(shù)字兩部分組成。可以使用花色集合與數(shù)字集合嵌套迭代完成撲克牌的組裝。

2、發(fā)牌

撲克牌組轉(zhuǎn)完畢后由Collections類的shuffle方法打亂重排,最后3張當(dāng)作底牌,剩余牌通過(guò)對(duì)3取模依次發(fā)牌。

3、看牌

打印集合。

代碼演示

import java.util.*;/** * @author layman */public class Poker2 { // 牌堆 private static Map<Integer, String> pokerMap = new HashMap<>(); // 花色 private static ArrayList<String> colors = new ArrayList<>(); // 數(shù)字 private static ArrayList<String> numbers = new ArrayList<>(); // 撲克牌的編號(hào)集合 private static ArrayList<Integer> numberList = new ArrayList<>(); // 玩家編號(hào)集合 private static ArrayList<Integer> noP1 = new ArrayList<>(); private static ArrayList<Integer> noP2 = new ArrayList<>(); private static ArrayList<Integer> noP3 = new ArrayList<>(); // 底牌編號(hào)集合 private static ArrayList<Integer> diPaiNo = new ArrayList<>(); // 三個(gè)玩家 private static ArrayList<String> playerOne = new ArrayList<String>(); private static ArrayList<String> playerTwo = new ArrayList<String>(); private static ArrayList<String> playerThree = new ArrayList<String>(); // 底牌 private static ArrayList<String> diPai = new ArrayList<String>(); /** * 創(chuàng)建撲克牌并洗牌 */ public static void createPoker(){ Collections.addAll(colors, '♦', '♣', '♥', '♠'); Collections.addAll(numbers, '2', 'A', 'K', 'Q', 'J', '10', '9', '8', '7', '6', '5', '4', '3'); // 設(shè)置存儲(chǔ)編號(hào) int count = 1; pokerMap.put(count++, '大王'); pokerMap.put(count++, '小王'); // 創(chuàng)建撲克牌 for (String number : numbers) { for (String color : colors) { String card = color + number; pokerMap.put(count++, card); } } // 先取編號(hào) Set<Integer> numberSet = pokerMap.keySet(); numberList.addAll(numberSet); // 然后隨機(jī)洗牌 Collections.shuffle(numberList); } /** * 發(fā)牌 */ public static void faPai(){ for (int i = 0; i < numberList.size(); i++) { Integer no = numberList.get(i); // 留出底牌 if (i >= 51) { diPaiNo.add(no); } else { if (i % 3 == 0) { noP1.add(no); } else if (i % 3 == 1) { noP2.add(no); } else { noP3.add(no); } } } } /** * 發(fā)牌并排序 */ public static void sortCards(){ // 對(duì)編號(hào)進(jìn)行排序 Collections.sort(noP1); Collections.sort(noP2); Collections.sort(noP3); Collections.sort(diPaiNo); // 進(jìn)行牌面的轉(zhuǎn)換 for (Integer i : noP1) { // 根據(jù)編號(hào)獲取牌面,并發(fā)給對(duì)應(yīng)的玩家 String card = pokerMap.get(i); playerOne.add(card); } for (Integer i : noP2) { String card = pokerMap.get(i); playerTwo.add(card); } for (Integer i : noP3) { String card = pokerMap.get(i); playerThree.add(card); } for (Integer i : diPaiNo) { String card = pokerMap.get(i); diPai.add(card); } } /** * 看牌 */ public static void showCards(){ System.out.println('賭圣:' + playerOne); System.out.println('賭俠:' + playerTwo); System.out.println('賭王:' + playerThree); System.out.println('底牌:' + diPai); } public static void main(String[] args) { createPoker(); faPai(); sortCards(); showCards(); }}

補(bǔ)充:

使用ArrayList實(shí)現(xiàn)斗地主案例(無(wú)序版):傳送門(mén)

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

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 亚洲人网站| 国产伦理一区 | 色综网 | 欧美色频| 亚洲日本中文 | 日韩啊啊啊 | 青青久久久 | 可以在线观看的av | 开心激情五月网 | 欧洲精品在线观看 | 天天操网| 亚洲网站免费 | 狠狠操中文字幕 | 免费涩涩网站 | 国产一区二区精品在线 | 国产精品男同 | 青青草原在线免费观看视频 | 久久久久99精品成人片三人毛片 | 精品久久久久久亚洲综合网站 | 亚洲欧美日韩国产精品 | 日韩在线你懂的 | 日韩 欧美 中文 | 大地资源1080在线观看 | 看黄色一级大片 | 亚天堂| 欧美bbbbbbbbbbbb精品 | 日韩福利视频在线观看 | 超碰人人av | 欧美日韩片 | 国产精品成人av性教育 | 日韩在线观看免费 | 色视频免费 | 日韩无遮挡 | 成人在线视频免费看 | www.欧美日韩| 色无极亚洲影院 | 男人的天堂亚洲 | 日韩久久久 | 99在线视频免费 | 五月婷婷久久久 | 欧美成人午夜精品免费 |