按照鬥地主的規則,完成洗牌發牌的動作。 具體規則: 使用 54 張牌打亂順序,三個玩家參與遊戲,三人交替摸牌,每人 17 張牌,最後三 張留作底牌。
阿新 • • 發佈:2022-03-28
package day_02_Demo.pokerDemo; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; //按照鬥地主的規則,完成洗牌發牌的動作。 具體規則: //使用 54 張牌打亂順序,三個玩家參與遊戲,三人交替摸牌,每人 17 張牌,最後三 //張留作底牌。 public class Poker { public static void main(String[] args) { // 準備牌: //建立三個集合分別是:撲克箱pokerBox,撲克花色colors,撲克數字numbers ArrayList<String> pokerBox = new ArrayList<>(); Collection<String> colors = new ArrayList<>(); Collection<String> numbers = new ArrayList<>(); colors.add("♠"); colors.add("♥"); colors.add("♦"); colors.add("♣"); for (int i = 2; i <=10 ; i++) { numbers.add(i+"");//注意拼接 } numbers.add("A"); numbers.add("J"); numbers.add("Q"); numbers.add("K"); //新增大王,小王 pokerBox.add("大王"); pokerBox.add("小王"); //拼接花色和數字, // System.out.println(colors); // System.out.println(numbers); for (String color:colors ) { for (String number:numbers ) { String s = color+number; pokerBox.add(s); } } System.out.println(pokerBox); //打亂撲克牌:洗牌 Collections.shuffle( pokerBox); System.out.println(pokerBox); //• 發牌 //將每個人以及底牌設計為 ArrayList,將最後 3 張牌直接存放於底牌,剩餘牌通過對3 取模依次發牌。 //建立三個玩家player,和底牌 Collection<String> player1 = new ArrayList<>(); Collection<String> player2 = new ArrayList<>(); Collection<String> player3 = new ArrayList<>(); Collection<String> diPai = new ArrayList<>(); //遍歷撲克箱pokerBox for (int i = 0; i <pokerBox.size() ; i++) { //獲取牌面 // String card = (String) ((List<?>) pokerBox).get(i); String card = pokerBox.get(i); if (i >=51) { diPai.add(card); }else if (i%3 == 0){ player1.add(card); }else if (i%3 == 1){ player2.add(card); }else { player3.add(card); } } //• 看牌 //直接列印每個集合。 System.out.println("tom:"+player1); System.out.println("JACK:"+player2); System.out.println("LILI:"+player3); System.out.println("tom:"+diPai); } }