案例說明:使用Java實現簡單的鬥地主洗牌發牌的操做;java
具體規則:數組
共有54張牌,順序打亂;測試
三個玩家參與遊戲,三人交替摸牌,每人17張牌,最後留三張爲底牌(地主牌)。code
具體代碼實現步驟:遊戲
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class PokerGame { public static void main(String[] args) { //定義撲克牌的花色以及數字的數組 String[] flower = {"♥️","♠️","♣️","♦️"}; String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; //建立牌組集合 List poker = new ArrayList(); //組合撲克牌樣式 //拿出每個花色,而後跟每個數字進行結合,儲存在牌組中 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); //測試牌有沒有被打亂 //發牌操做 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); } }
玩家一的牌:[♥️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]