1. 程式人生 > >妞一個鬥地主發牌程序!!!

妞一個鬥地主發牌程序!!!

循環 步驟 pan pre length 知識 基本 復制 code

學習java三個星期,利用所學的知識做了一個三人鬥地主發牌程序,閑話少敘,上代碼

 1 import java.util.ArrayList;
 2 import java.util.Collections;
 3 import java.util.List;
 4 
 5 /**
 6  * 三人鬥地主程序 功能:將一副牌隨機分發給地主(20張牌),農民A(17張牌),農民B (17張牌)
 7  * 步驟:1、洗牌階段:將54張牌儲存到ArraryList 容器中(批量儲存,for循環)
 8  * 2、發牌階段:打亂數組中元素的順序,取出三個元素,首先放到裝有地主牌的容器中 利用for循環嵌套,分段給牌(存數據)到地主、農民A、農民B
9 * 三個容器當中,一家17張,外層循環控制循環次數,內層循環控制每家的牌數 10 * 11 * @author kimi 12 * 13 */ 14 15 public class Landlords { 16 public static void play() { 17 String[] arr = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" }; // 定義數組用來儲存基本牌組 18 List<String> pokerList = new
ArrayList<>(); // 定義容器存儲54張牌 19 List<String> xList = new ArrayList<>(); // 定義容器儲存地主的牌 20 List<String> aList = new ArrayList<>(); // 定義容器儲存農民A的牌 21 List<String> bList = new ArrayList<>(); // 定義容器存儲農民B的牌 22 for (int i = 0; i < arr.length; i++) {
23 pokerList.add("紅桃" + arr[i]); 24 pokerList.add("黑桃" + arr[i]); // 循環存入數據 25 pokerList.add("梅花" + arr[i]); 26 pokerList.add("方塊" + arr[i]); 27 } 28 pokerList.add("大鬼"); 29 pokerList.add("小鬼"); 30 Collections.shuffle(pokerList); // 打亂牌組的順序 31 xList.add(pokerList.get(0)); 32 xList.add(pokerList.get(1)); // 復制三張牌給地主 33 xList.add(pokerList.get(2)); 34 pokerList.remove(0); 35 pokerList.remove(1); // 刪除牌組中的三張牌 36 pokerList.remove(2); 37 // ----------開始發牌---------------- 38 for (int i = 0; i < 17; i++) { 39 xList.add(pokerList.get(i)); 40 } 41 for (int i = 17; i < 34; i++) { 42 aList.add(pokerList.get(i)); 43 } 44 for (int i = 34; i < 51; i++) { 45 bList.add(pokerList.get(i)); 46 } 47 System.out.println("地主的牌:" + xList); 48 System.out.println("農民A的牌:" + aList); 49 System.out.println("農民B的牌:" + bList); 50 } 51 52 public static void main(String[] args) { 53 play(); 54 } 55 56 }

運行結果如下,當然每次運行結果都不一樣

地主的牌:[黑桃3, 紅桃9, 紅桃K, 紅桃9, 紅桃J, 方塊K, 梅花Q, 梅花2, 方塊Q, 黑桃9, 紅桃6, 方塊10, 梅花3, 黑桃K, 黑桃10, 方塊3, 紅桃Q, 梅花K, 方塊9, 紅桃5]
農民A的牌:[黑桃J, 黑桃4, 黑桃6, 黑桃7, 方塊7, 紅桃7, 梅花J, 方塊4, 黑桃A, 方塊8, 梅花4, 小鬼, 大鬼, 方塊2, 梅花8, 梅花5, 梅花7]
農民B的牌:[紅桃2, 紅桃8, 梅花10, 梅花A, 黑桃8, 紅桃A, 梅花9, 紅桃10, 方塊J, 方塊6, 方塊A, 黑桃Q, 紅桃4, 黑桃5, 黑桃2, 方塊5, 紅桃3]

妞一個鬥地主發牌程序!!!