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

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

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

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

具體規(guī)則:

共有54張牌,順序打亂;

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

具體代碼實現(xià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();

    //組合撲克牌樣式
    //拿出每一個花色,然后跟每一個數(shù)字進行結(jié)合,儲存在牌組中
    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);

    //定義三個玩家和地主牌的集合
    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]

實例補充

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集合,鍵:編號  值:牌
 HashMap<Integer,String> pooker = new HashMap<Integer,String>();
 //創(chuàng)建List集合,存儲編號
 ArrayList<Integer> pookerNumber = new ArrayList<Integer>();
 //定義13個點數(shù)的數(shù)組
 String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
 //定義4個花色組合
 String[] colors = {"♠","♣","♥","♦"};
 
 //定義一個整數(shù)變量,作為Map的鍵
 int index = 2;
 //遍歷數(shù)組,用花色+點數(shù)的組合,存儲到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);
 
 //單獨存儲大王和小王
 pooker.put(0, "大王");
 pookerNumber.add(0);
 pooker.put(1, "小王");
 pookerNumber.add(1);
 
 //洗牌,將牌的編號打亂
 Collections.shuffle(pookerNumber);
 //System.out.println(pookerNumber);
 
 //發(fā)牌,將牌編號,發(fā)給3個玩家集合+1個底牌集合
 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)); 
 //對索引%3判斷
 }else if(i % 3 == 0) {
 //索引上的編號,發(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));
 } 
 }
 //對玩家手中的編號進行排序
 Collections.sort(player1);
 Collections.sort(player2);
 Collections.sort(player3);
 
 //看牌,就是將玩家手中的編號,到Map集合中查找,根據(jù)鍵找值
 //定義實現(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實現(xiàn)斗地主最簡代碼實例的文章就介紹到這了,更多相關(guān)Java實現(xiàn)簡單的斗地主案例內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java?-jar命令及SpringBoot通過java?-jav啟動項目的過程

    java?-jar命令及SpringBoot通過java?-jav啟動項目的過程

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

    Java SPI的簡單小實例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Java springboot yaml語法注解

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

最新評論

扶余县| 资兴市| 昌都县| 盘山县| 井研县| 巴里| 屏山县| 灌云县| 晋宁县| 丰顺县| 建阳市| 方正县| 延边| 佛山市| 墨江| 济阳县| 磐石市| 韩城市| 驻马店市| 时尚| 莆田市| 诸城市| 额敏县| 阳西县| 民和| 五家渠市| 潍坊市| 沈丘县| 广西| 临洮县| 恩施市| 安仁县| 香格里拉县| 新乐市| 巨鹿县| 韶山市| 阿尔山市| 特克斯县| 宜州市| 五常市| 黔江区|