代码如下:
package doudizhufapai;
import java.util.ArrayList;
import java.util.Collections;
/*
* 要求: 模拟升级随机发牌
*
* 思路:
* 1、建立字符串数组存储扑克牌,分为两个字符串数组,花色,数字大小,大小王单独添加至集合
* 2、将花色与数字大小两两组合创建对象存储至集合中
* 3、这里我们要用到Collections工具类中的随机置换方法shuffler()对对象进行随机置换
* 4、建立五个集合,四个集合为接受发牌的对象集合,一个集合为底牌存储集合
* 5、分别打印思路4中的五个集合
*/
public class ShenJiFaPai {
public static void main(String[] args) {
// 建立字符串数组存储扑克牌
String[] huaSe = { "黑桃", "红桃", "梅花", "方片" };
String[] shuZiDaXiao = { "A", "2", "3", "4", "5", "6", "7", "8", "9",
"10", "J", "Q", "K", "A", "2", "3", "4", "5", "6", "7", "8",
"9", "10", "J", "Q", "K" };
// 创建集合
ArrayList<String> pkp = new ArrayList<String>();
// 创建并添加元素
for (int x = 0; x < huaSe.length; x++) {
for (int y = 0; y < shuZiDaXiao.length; y++) {
pkp.add(huaSe[x] + shuZiDaXiao[y]);
}
}
// 添加大小王
pkp.add("大王");
pkp.add("小王");
pkp.add("大王");
pkp.add("小王");
// 调用Collections工具类的洗牌方法,对集合进行随机置换
Collections.shuffle(pkp);
// 创建四个对象存储所发的牌和底牌
ArrayList<String> dong = new ArrayList<String>();
ArrayList<String> xi = new ArrayList<String>();
ArrayList<String> nan = new ArrayList<String>();
ArrayList<String> bei = new ArrayList<String>();
ArrayList<String> diPai = new ArrayList<String>();
// 留八张底牌
for (int x = 0; x < 8; x++) {
diPai.add(pkp.get(x));
}
// 将剩下的牌分发给其余三人
for (int x = 8; x < pkp.size(); x++) {
if (x % 4 == 0) {
dong.add(pkp.get(x));
} else if (x % 4 == 1) {
xi.add(pkp.get(x));
} else if (x % 4 == 2) {
nan.add(pkp.get(x));
} else if (x % 4 == 3) {
bei.add(pkp.get(x));
}
}
// 打印底牌
System.out.println("底牌有这些:");
System.out.println(diPai);
// 打印三人的手牌
System.out.println("dong的牌有:");
System.out.println(dong);
System.out.println("xi的牌有:");
System.out.println(xi);
System.out.println("nan的牌有:");
System.out.println(nan);
System.out.println("bei的牌有:");
System.out.println(bei);
}
}
效果图如下
思路是一样的
只不过把一副牌变为两副牌,三个收牌集合改为四个,底牌数改为八张
|