欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實現(xiàn)撲克牌分發(fā)功能

 更新時間:2020年05月20日 09:16:19   作者:PowerAlan  
這篇文章主要為大家詳細介紹了java實現(xiàn)撲克牌分發(fā),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java實現(xiàn)撲克牌分發(fā)的具體代碼,供大家參考,具體內容如下

實現(xiàn)一個三人斗地主的撲克牌分發(fā)功能

思路:

1、準備一組54張的撲克牌
2、洗牌
3、將撲克牌分發(fā)到玩家手中
4、查看每個選手中的撲克牌和地主的底牌

思路補充:先創(chuàng)建兩個花色和數(shù)字的數(shù)組,再創(chuàng)建一個List集合,和Map集合,運用雙層for循環(huán)將花色和數(shù)字依次組合成52張撲克牌,之后分別在加添加進Map集合中的value值中,Map中的key值依次用0-51表示,雙層for循環(huán)的同時將0-51的值依次賦值給List集合中,循環(huán)結束后在依次將大王、小王加入Map集合中的value中相對應的key值用52和53表示,還要講52和53賦值到List集合中,此時所有牌組準備完畢。
分別創(chuàng)建四個新List集合,將存放序號的List集合中的序號打亂后分發(fā)到玩家手中,最后留三張底牌,添加到他們對應的List集合中
分別將三位玩家和底牌中的序號集合遍歷,遍歷出的數(shù)值帶入到Map中的get方法的key值中,得到相對應得value值(也就是對應的牌),再將value值賦值給玩家手中對應的序號值處。
最后將三位玩家和底牌所對應的List集合輸出打印出來即可看到他們被分到的牌。

具體代碼如下:

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

public class TestPokerPlus {

 public static void main(String[] args) {
  //1.創(chuàng)建撲克牌集合
  //創(chuàng)建map集合,類似于字典 和 list序號集合
  List list = new ArrayList();
  HashMap<Integer,String> map = new HashMap<Integer,String>();
  //將花色和數(shù)字及JQK組合添加進撲克牌集合map中
  String[] color = {"♥","♦","♠","♣"};
  String[] number = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
  int num = 0;//計數(shù)器思想
  for(int i = 0 ;i< number.length;i++){
   for(int j = 0 ;j< color.length;j++){
    map.put(num,color[j]+number[i]);
    list.add(num);
    num++;
   }
  }
  //將序號集合中加入52,53兩位序列,為之后map集合中加入“大王”、“小王”做準備
  list.add(list.size());
  list.add(list.size());
  //在加上大王、小王兩張牌
  map.put(list.size()-2,"小王");
  map.put(list.size()-1,"大王");

  //2.打亂
  //將序號集合打亂
  Collections.shuffle(list);

  //3.分牌
  //創(chuàng)建三名玩家和底牌集合
  List player1 = new ArrayList();
  List player2 = new ArrayList();
  List player3 = new ArrayList();
  List cards = new ArrayList();
  //循環(huán)分發(fā)序號
  for(int i = 0 ;i<list.size();i++){
   if(i<list.size()-3){
    if(i % 3 == 1){
     player1.add(list.get(i));
    }else if(i % 3 == 2){
     player2.add(list.get(i));
    }else{
     player3.add(list.get(i));
    }
   }else{
    cards.add(list.get(i));
   }
  }
  //將分的的序號升序排列
  Collections.sort(player1);
  Collections.sort(player2);
  Collections.sort(player3);
  Collections.sort(cards);
  //遍歷將3個玩家和底牌分得的序號集合 對照map集合重新將對應的牌賦值給對應的序號
  boardAssignment(map, player1);
  boardAssignment(map, player2);
  boardAssignment(map, player3);
  boardAssignment(map, cards);

  //4.看牌
  //打印輸出三名玩家的牌的底牌
  System.out.println(player1);
  System.out.println(player2);
  System.out.println(player3);
  System.out.println(cards);
 }

 private static void boardAssignment(HashMap<Integer, String> map,List list) {
  for(int i = 0;i < list.size();i++){
   list.set(i, map.get(list.get(i)));
  }
 }
}

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

相關文章

  • 詳解Reactor中Context的用法

    詳解Reactor中Context的用法

    在Reactor中提供了Context來替代ThreadLocal,可以實現(xiàn)一個跨線程的共享變量的透明方式。本文主要為大家介紹了Context的用法的用法,感興趣的可以了解一下
    2023-02-02
  • 在Mybatis中使用自定義緩存ehcache的方法

    在Mybatis中使用自定義緩存ehcache的方法

    這篇文章主要介紹了在Mybatis中使用自定義緩存ehcache的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • MybatisX無法自動生成entity實體類的解決方法

    MybatisX無法自動生成entity實體類的解決方法

    本文主要介紹了MybatisX無法自動生成entity實體類的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • 深入學習JAVA GC日志的相關知識

    深入學習JAVA GC日志的相關知識

    JVM 在Java應用程序優(yōu)化中是不可缺少的一大重項,如何合理配置Java參數(shù),如何驗證配置參數(shù)的有效性,從GC日志中可以獲得很重要的提示。下面小編就帶大家來一起學習一下吧
    2019-06-06
  • java后臺驗證碼生成的實現(xiàn)方法

    java后臺驗證碼生成的實現(xiàn)方法

    在我們使用進行系統(tǒng)開發(fā)時,為了提高系統(tǒng)的安全性,在登錄的時候多數(shù)人都會要求輸入驗證,本文介紹了java后臺驗證碼生成的實現(xiàn)方法,感興趣的一起來了解一下
    2021-05-05
  • spring boot3整合AI組件及使用方法

    spring boot3整合AI組件及使用方法

    本文介紹了springboot開發(fā)后端服務中,AI組件(Spring AI)的整合與使用,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • java開發(fā)AOP基礎JdkDynamicAopProxy

    java開發(fā)AOP基礎JdkDynamicAopProxy

    這篇文章主要為大家介紹了java開發(fā)AOP基礎JdkDynamicAopProxy源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Java實現(xiàn)List轉換為Map的方法小結

    Java實現(xiàn)List轉換為Map的方法小結

    這篇文章主要為大家詳細介紹了Java實現(xiàn)List轉換為Map的一些常見的方法,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考一下
    2024-03-03
  • Java中Scanner類與BufferReader類的不同點(非常詳細)

    Java中Scanner類與BufferReader類的不同點(非常詳細)

    這篇文章主要介紹了Java中Scanner類與BufferReader類的不同點(非常詳細)的相關資料,需要的朋友可以參考下
    2016-08-08
  • javaWeb連接數(shù)據(jù)庫實現(xiàn)簡單登陸注冊功能的全過程

    javaWeb連接數(shù)據(jù)庫實現(xiàn)簡單登陸注冊功能的全過程

    初學javaWeb,老師留下一小作業(yè),用JAVA實現(xiàn)與服務器端交互,實現(xiàn)登錄和注冊功能,下面這篇文章主要給大家介紹了關于javaWeb連接數(shù)據(jù)庫實現(xiàn)簡單登陸注冊功能的相關資料,需要的朋友可以參考下
    2022-06-06

最新評論