摸拟斗地主发牌,随机生成17张牌三份,以及三张底牌(ArrayList练习)
package arrayList;
import java.util.ArrayList;
import java.util.Random;
public class ArrayListTest {
/**
* 摸拟机器斗地主发牌,生成随机三份牌以及三张底牌
* @param args
*/
public static void main(String[] args) {
String[] a = {"♣","♦","♠","♥"};
String[] b = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
ArrayList<String> arrayList = new ArrayList<>();
//构造一副牌
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < b.length; j++) {
arrayList.add(a[i] + b[j]);
}
}
String big = "大王";
String small = "小王";
//加入大小王
arrayList.add(big);
arrayList.add(small);
ArrayList<String> arrayList1 = new ArrayList<>();
ArrayList<String> arrayList2 = new ArrayList<>();
ArrayList<String> arrayList3 = new ArrayList<>();
Random rd = new Random();
//随机生成三份每份17张
for(int i=0;i<54;i++){
if(i<17){
int redomNum = rd.nextInt(arrayList.size());
arrayList1.add(arrayList.get(redomNum));
arrayList.remove(redomNum);
}else if(i<34){
int redomNum = rd.nextInt(arrayList.size());
arrayList2.add(arrayList.get(redomNum));
arrayList.remove(redomNum);
}else if(i<51){
int redomNum = rd.nextInt(arrayList.size());
arrayList3.add(arrayList.get(redomNum));
arrayList.remove(redomNum);
}
}
//输出底牌以及随机的三份牌
System.out.println("底牌为:"+arrayList);
System.out.println(arrayList1);
System.out.println(arrayList2);
System.out.println(arrayList3);
}
}
每次运行产生的三份牌都不相同,均为随机生成
运行结果:
底牌为:[♣2, ♥3, 大王]
[♦7, ♠6, ♣4, ♠7, ♦A, ♠J, ♦Q, ♣3, ♠5, ♦9, ♣5, ♦5, ♦10, ♦3, ♠8, ♣A, ♣10]
[♣9, ♠K, ♥9, ♣K, ♠A, ♥8, ♥J, ♦J, ♥2, ♦2, ♥7, ♦6, ♥K, ♣Q, ♠2, ♥5, ♦4]
[♣8, ♥A, 小王, ♦K, ♠4, ♥10, ♠Q, ♣J, ♣6, ♣7, ♠10, ♥Q, ♠3, ♠9, ♦8, ♥4, ♥6]