编程语言
首页 > 编程语言> > Java__斗地主案例

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