案例说明:使用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]