Java__斗地主案例
作者:互联网
斗地主(本例不包含打牌)
1.准备牌
54张牌,存储到一个集合中其中特殊牌:大王、小王
其他52张牌:义一个数组/集合,存储4种花色
定义一个数组/集合,存储13个序号:2,AK…3 ;
循环嵌套遍历两个数组/集合组装52张牌
2.洗牌
使用集合工具类Collections的方法
static void shuffle(List<?> list)使用指定的随机源对指定列表进行置换,会随机的打乱集合中元素的顺序(静态方法,直接用)。
3.发牌
要求: 1人17张牌,剩余3张作为底牌,一人一 张轮流发牌
定义4个集合,存储3个玩家的牌和底牌
4.看牌
直接打印集合,遍历存储玩家和底牌的集合
import java.util.Collections;
public class DouDiZhu {
public static void main(String[] args) {
//1.准备牌
ArrayList<String> poker = new ArrayList<>();
String[ ] colors = {"红桃","黑桃","方片","梅花"};
String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
poker . add("大王");
poker . add("小王");
//循环嵌套遍历两个数组,组装52张牌
for(String number : numbers ){
for (String color : colors) {
poker. add( color+number);
}
}
/*
2.洗牌.
使用集合的工具类Collections中的方法
static void shuffle(List<?> list) 使用默认随机源对指定列表进行置换(即打乱顺序)。
*/
Collections.shuffle(poker);
/*
3.发牌
*/
//定义4个集合,存储玩家的牌和底牌
ArrayList<String> player01 = new ArrayList<>();
ArrayList<String> player02 = new ArrayList<>();
ArrayList<String> player03 = new ArrayList<>();
ArrayList<String> diPai = new ArrayList<>();
/*
遍历poker集合,获取每一张牌
使用poker集合的索引%3给3个玩家轮流发牌
剩余3张牌给底牌
*/
for (int i=0;i<poker.size();i++) {
//获取每一张牌
String p = poker.get(i);
//轮流发牌
if(i>=51){
//给底牌发牌
diPai.add(p);
}else if(i%3==0){
//给玩家1发牌
player01.add(p);
}else if(i%3==1){
//给玩家2发牌
player02.add(p);
}else if(i%3==2){
//给玩家3发牌
player03.add(p);
}
}
//4.看牌
System.out.println("玩家一"+player01);
System.out.println("玩家二:"+player02);
System.out.println("玩家三:"+player03);
System.out.println("底牌: "+diPai);
}
}
运行结果
玩家一[红桃7, 黑桃A, 红桃4, 黑桃4, 方片6, 小王, 梅花K, 红桃8, 大王, 梅花3, 梅花A, 方片10, 梅花2, 红桃A, 方片K, 黑桃8, 梅花9]
玩家二:[梅花6, 红桃10, 方片Q, 黑桃5, 黑桃6, 梅花10, 红桃3, 方片J, 黑桃Q, 黑桃9, 黑桃K, 红桃Q, 红桃K, 梅花Q, 红桃5, 梅花4, 黑桃3]
玩家三:[方片4, 红桃9, 梅花J, 红桃2, 黑桃10, 方片3, 方片7, 黑桃2, 梅花8, 方片9, 黑桃7, 梅花7, 方片8, 方片5, 黑桃J, 方片A, 方片2]
底牌: [红桃6, 梅花5, 红桃J]
标签:__,Java,红桃,ArrayList,斗地主,方片,玩家,黑桃,梅花 来源: https://blog.csdn.net/LiMgYe_OK/article/details/111735036