使用Java實現簡單的鬥地主案例
案例說明:使用Java實現簡單的鬥地主洗牌發牌的操作;
具體規則:
共有54張牌,順序打亂;
三個玩家參與遊戲,三人交替摸牌,每人17張牌,最後留三張為底牌(地主牌)。
具體程式碼實現步驟:
撲克牌準備操作
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]