最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)斗地主最簡代碼實(shí)例

 更新時(shí)間:2020年05月10日 12:01:04   作者:淡哈哈  
在本篇文章里小編給各位分享的是關(guān)于Java實(shí)現(xiàn)斗地主最簡代碼實(shí)例,有興趣的朋友們可以參考下。

案例說明:使用Java實(shí)現(xiàn)簡單的斗地主洗牌發(fā)牌的操作;

具體規(guī)則:

共有54張牌,順序打亂;

三個(gè)玩家參與游戲,三人交替摸牌,每人17張牌,最后留三張為底牌(地主牌)。

具體代碼實(shí)現(xiàn)步驟:

撲克牌準(zhǔn)備操作

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class PokerGame {

  public static void main(String[] args) {

    //定義撲克牌的花色以及數(shù)字的數(shù)組
    String[] flower = {"♥️","♠️","♣️","♦️"};
    String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
    
    //創(chuàng)建牌組集合
    List poker = new ArrayList();

    //組合撲克牌樣式
    //拿出每一個(gè)花色,然后跟每一個(gè)數(shù)字進(jìn)行結(jié)合,儲(chǔ)存在牌組中
    for (int i = 0; i < flower.length; i++) {
      for (int j = 0; j < numbers.length; j++) {
        poker.add(flower[i].concat(numbers[j]));
      }
    }

    //添加大小王到牌組集合中
    poker.add("大王");
    poker.add("小王");

    //打印輸出所有撲克牌測試
    System.out.println(poker);

    //定義三個(gè)玩家和地主牌的集合
    List player1 = new ArrayList();
    List player2 = new ArrayList();
    List player3 = new ArrayList();
    List dizhupai = new ArrayList();

    //洗牌操作,使用shuffle方法
    Collections.shuffle(poker);
    System.out.println(poker); //測試牌有沒有被打亂

    //發(fā)牌操作
    for (int k = 0; k<poker.size() ; k++) {
      //留出三張牌存到底牌的集合中
      if (k > 50) {
        dizhupai.add(poker.get(k));
      } else if (k % 3 == 0) {
        player1.add(poker.get(k));
      } else if (k % 3 == 1) {
        player2.add(poker.get(k));
      } else if (k % 3 == 2) {
        player3.add(poker.get(k));
      }
    }

    //最終看牌操作
    System.out.println("玩家一的牌"+player1);
    System.out.println("玩家二的牌"+player2);
    System.out.println("玩家三的牌"+player3);
    System.out.println("地主牌"+dizhupai);

  }
}

結(jié)果展示

玩家一的牌:[♥️9, ♠️A, ♠️5, ♥️A, ♥️2, ♥️10, ♠️7, ♣️J, ♥️3, ♠️2, ♣️5, ♦️2, ♠️6, ♥️7, ♦️K, ♣️9, 大王]
玩家二的牌:[♦️9, ♠️4, ♣️4, ♣️10, ♥️J, ♦️4, ♥️8, ♥️5, ♦️A, ♣️A, ♦️7, ♦️3, ♦️Q, ♣️K, ♥️6, ♣️3, ♠️Q]
玩家三的牌:[♣️Q, ♣️2, ♣️8, ♣️7, ♥️Q, ♦️10, ♠️8, ♣️6, ♥️4, ♠️10, 小王, ♥️K, ♠️3, ♦️8, ♦️6, ♠️K, ♠️J]
地主牌:[♠️9, ♦️5, ♦️J]

實(shí)例補(bǔ)充

package itcast.demo6;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
 
 
public class DouDiZhu {
 public static void main(String[] args) {
 //1、組合牌
 //創(chuàng)建Map集合,鍵:編號(hào)  值:牌
 HashMap<Integer,String> pooker = new HashMap<Integer,String>();
 //創(chuàng)建List集合,存儲(chǔ)編號(hào)
 ArrayList<Integer> pookerNumber = new ArrayList<Integer>();
 //定義13個(gè)點(diǎn)數(shù)的數(shù)組
 String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
 //定義4個(gè)花色組合
 String[] colors = {"♠","♣","♥","♦"};
 
 //定義一個(gè)整數(shù)變量,作為Map的鍵
 int index = 2;
 //遍歷數(shù)組,用花色+點(diǎn)數(shù)的組合,存儲(chǔ)到Map集合中
 for(String number : numbers) {
 for(String color : colors) {
 pooker.put(index, color + number);
 pookerNumber.add(index);
 index++;
 }
 }
 //System.out.println(pooker);
 //System.out.println(pookerNumber);
 
 //單獨(dú)存儲(chǔ)大王和小王
 pooker.put(0, "大王");
 pookerNumber.add(0);
 pooker.put(1, "小王");
 pookerNumber.add(1);
 
 //洗牌,將牌的編號(hào)打亂
 Collections.shuffle(pookerNumber);
 //System.out.println(pookerNumber);
 
 //發(fā)牌,將牌編號(hào),發(fā)給3個(gè)玩家集合+1個(gè)底牌集合
 ArrayList<Integer> player1 = new ArrayList<Integer>();
 ArrayList<Integer> player2 = new ArrayList<Integer>();
 ArrayList<Integer> player3 = new ArrayList<Integer>();
 ArrayList<Integer> buttom = new ArrayList<Integer>();
 //發(fā)牌,采用的是集合的索引%3
 for(int i = 0; i < pookerNumber.size();i++) {
 //現(xiàn)將底牌做好
 if(i<3) {
 //存到底牌去
 buttom.add(pookerNumber.get(i)); 
 //對(duì)索引%3判斷
 }else if(i % 3 == 0) {
 //索引上的編號(hào),發(fā)給玩家1
 player1.add(pookerNumber.get(i));
 }else if(i % 3 == 1) {
 //發(fā)給玩家2
 player2.add(pookerNumber.get(i));
 }else if(i % 3 == 2) {
 //發(fā)給玩家3
 player3.add(pookerNumber.get(i));
 } 
 }
 //對(duì)玩家手中的編號(hào)進(jìn)行排序
 Collections.sort(player1);
 Collections.sort(player2);
 Collections.sort(player3);
 
 //看牌,就是將玩家手中的編號(hào),到Map集合中查找,根據(jù)鍵找值
 //定義實(shí)現(xiàn)方法 
 look("包身工 ",player1,pooker); 
 look("清潔工 ",player2,pooker);
 look("洗碗工 ",player3,pooker);
 look("底牌  ",buttom,pooker);
 }
 
 public static void look(String name,ArrayList<Integer> player,HashMap<Integer,String> pooker) {
 //遍歷ArrayList集合,獲取元素,作為鍵,到集合Map中找值
 System.out.print(name+" ");
 for(Integer key : player) {
 String value = pooker.get(key);
 System.out.print(value+" ");
 }
 System.out.println();
 }
}

包身工 大王 ♣2 ♥2 ♦2 ♦A ♦K ♣J ♥10 ♠9 ♣9 ♥9 ♦9 ♣5 ♦5 ♦4 ♠3 ♦3
清潔工 小王 ♠K ♥K ♠Q ♣Q ♦Q ♦J ♠10 ♦10 ♥8 ♠7 ♥7 ♦7 ♥5 ♠4 ♣3 ♥3
洗碗工 ♠2 ♥A ♣K ♥Q ♠J ♥J ♣10 ♠8 ♦8 ♣7 ♠6 ♣6 ♥6 ♦6 ♠5 ♣4 ♥4
底牌 ♠A ♣A ♣8

到此這篇關(guān)于Java實(shí)現(xiàn)斗地主最簡代碼實(shí)例的文章就介紹到這了,更多相關(guān)Java實(shí)現(xiàn)簡單的斗地主案例內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java?-jar命令及SpringBoot通過java?-jav啟動(dòng)項(xiàng)目的過程

    java?-jar命令及SpringBoot通過java?-jav啟動(dòng)項(xiàng)目的過程

    本篇文章將為大家講述關(guān)于 SpringBoot 項(xiàng)目工程完成后,是如何通過 java-jar 命令來啟動(dòng)的,以及介紹 java-jar 命令的詳細(xì)內(nèi)容,對(duì)SpringBoot java?-jav啟動(dòng)過程感興趣的朋友跟隨小編一起看看吧
    2023-05-05
  • Java SPI的簡單小實(shí)例

    Java SPI的簡單小實(shí)例

    這篇文章主要介紹了Java SPI的簡單小實(shí)例,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 使用Logback設(shè)置日志級(jí)別

    使用Logback設(shè)置日志級(jí)別

    這篇文章主要介紹了使用Logback設(shè)置日志級(jí)別的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java堆內(nèi)存又溢出了!教你一招必殺技(推薦)

    Java堆內(nèi)存又溢出了!教你一招必殺技(推薦)

    這篇文章主要介紹了Java內(nèi)存溢出問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Springboot與Maven多環(huán)境配置的解決方案

    Springboot與Maven多環(huán)境配置的解決方案

    多環(huán)境配置的解決方案有很多,我看到不少項(xiàng)目的多環(huán)境配置都是使用Maven來實(shí)現(xiàn)的,本文就實(shí)現(xiàn)Springboot與Maven多環(huán)境配置,感興趣的可以了解下
    2021-06-06
  • SpringBoot整合Java DL4J實(shí)現(xiàn)文本分類系統(tǒng)

    SpringBoot整合Java DL4J實(shí)現(xiàn)文本分類系統(tǒng)

    在當(dāng)今信息爆炸的時(shí)代,自然語言處理領(lǐng)域中的文本分類顯得尤為重要,文本分類能夠高效地組織和管理海量的文本數(shù)據(jù),隨著互聯(lián)網(wǎng)的飛速發(fā)展,我們每天都被大量的文本信息所包圍,本文將介紹如何使用 Spring Boot 整合 Java Deeplearning4j 來構(gòu)建一個(gè)文本分類系統(tǒng)
    2024-10-10
  • 詳解基于Spring Boot/Spring Session/Redis的分布式Session共享解決方案

    詳解基于Spring Boot/Spring Session/Redis的分布式Session共享解決方案

    本篇文章主要介紹了詳解基于Spring Boot/Spring Session/Redis的分布式Session共享解決方案 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • java實(shí)現(xiàn)置換密碼加密解密

    java實(shí)現(xiàn)置換密碼加密解密

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)置換密碼加密解密,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Java版水果管理系統(tǒng)源碼

    Java版水果管理系統(tǒng)源碼

    這篇文章主要為大家詳細(xì)介紹了Java版水果管理系統(tǒng)源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Java springboot yaml語法注解

    Java springboot yaml語法注解

    這篇文章主要介紹了SpringBoot中的yaml語法及靜態(tài)資源訪問問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09

最新評(píng)論

弥勒县| 阳西县| 东源县| 延寿县| 瑞金市| 上饶县| 临沧市| 梁平县| 探索| 新野县| 蒙山县| 贵州省| 吴堡县| 尚志市| 深州市| 永寿县| 巩留县| 巧家县| 扶风县| 驻马店市| 河间市| 达州市| 永丰县| 丰台区| 通化市| 兴海县| 稻城县| 临江市| 高州市| 牟定县| 乐清市| 旺苍县| 伊金霍洛旗| 镇巴县| 兴山县| 德惠市| 荆门市| 安塞县| 凉城县| 遂溪县| 安龙县|