|
@@ -0,0 +1,69 @@
|
|
|
+package com.sf.javase.day13.list;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Random;
|
|
|
+
|
|
|
+public class Game {
|
|
|
+ private static final String[] suits = {"♥", "♣", "♦", "♠"};
|
|
|
+ // 生成牌
|
|
|
+ public List<Poker> buyPoker(){
|
|
|
+ List<Poker> pokers = new ArrayList<>();
|
|
|
+ for (int i = 0 ;i< suits.length;i++){
|
|
|
+ for (int j = 1 ;j <= 13 ;j++){
|
|
|
+ Poker poker = new Poker(suits[i], j);
|
|
|
+ pokers.add(poker);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return pokers;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //洗牌
|
|
|
+ public void shuffle(List<Poker> pokers){
|
|
|
+ for (int i = pokers.size()-1; i > 0; i--) { //0-51
|
|
|
+ Random random = new Random();
|
|
|
+ int index = random.nextInt(i);
|
|
|
+// int index = (int)(Math.random()*(i+1));
|
|
|
+ //交换
|
|
|
+ Poker poker = pokers.get(i);
|
|
|
+ pokers.set(i,pokers.get(index));
|
|
|
+ pokers.set(index,poker);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //发牌 总人数*每个人的排数 = 总排数
|
|
|
+
|
|
|
+ public List<List<Poker>> FP(List<Poker> pokers){
|
|
|
+ // 4个人 每人发13张
|
|
|
+ List<List<Poker>> persons = new ArrayList<>();
|
|
|
+ List<Poker> person1 = new ArrayList<>();
|
|
|
+ List<Poker> person2 = new ArrayList<>();
|
|
|
+ List<Poker> person3 = new ArrayList<>();
|
|
|
+ List<Poker> person4 = new ArrayList<>();
|
|
|
+ persons.add(person1);
|
|
|
+ persons.add(person2);
|
|
|
+ persons.add(person3);
|
|
|
+ persons.add(person4);
|
|
|
+ for (int i = 0;i<13;i++){ //牌数
|
|
|
+ for(int j = 0;j < 4;j++){ //人数
|
|
|
+ //发过的牌不能在发
|
|
|
+ Poker remove = pokers.remove(0);
|
|
|
+ persons.get(j).add(remove);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return persons;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public static void main(String[] args) {
|
|
|
+ Game game = new Game();
|
|
|
+ List<Poker> pokers = game.buyPoker();
|
|
|
+ System.out.println(pokers);
|
|
|
+ game.shuffle(pokers);
|
|
|
+ List<List<Poker>> fp = game.FP(pokers);
|
|
|
+ for (List<Poker> list : fp) {
|
|
|
+ System.out.println(list);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|