斗地主小游戏之洗牌

斗地主小游戏之洗牌

package 任务3;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
//思路:1添加牌的颜色   2添加牌的数字  3牌的数字和颜色合并  4 创建0到53的数,并且打乱
//      5.把54张牌分配到四个集合中去  6.分配好 的集合进行排序,更好看而已   7进行迭代,通过打乱的键进行添加到集合中去
//      8.打印集合
 public class pokerShuffleCards {
	public static void main(String[] args) {
		ArrayList<String> color = new ArrayList<String>();
		color.add("♠");
		color.add("♥");
		color.add("♦");
		color.add("♣");
		LinkedList<String> number = new LinkedList<String>();
		for (int i = 3; i <= 10; i++) {
			number.add(i + "");
		}
		number.add("J");
		number.add("Q");
		number.add("K");
		number.add("A");
		number.add("2");
	
	 HashMap<Integer,String> jiehe=new HashMap<Integer,String>();
	 int index=0;//纸牌编号
	 for(String thisnumber:number) {
		 for(String thiscolor:color) {
			 jiehe.put(index++, thiscolor+thisnumber);
		 }
		
	 }
	 jiehe.put(index++, "大王");//放在外面
	 jiehe.put(index++, "小王");
	 LinkedList<Integer>daluan=new LinkedList<Integer>();
	 for(int i=0;i<=53;i++) {
		 daluan.add(i);
	 }
	 Collections.shuffle(daluan);
	 LinkedList<Integer>play=new LinkedList<Integer>();
	 LinkedList<Integer>play1=new LinkedList<Integer>();
	 LinkedList<Integer>play2=new LinkedList<Integer>();
	 LinkedList<Integer>dipai=new LinkedList<Integer>();
	 for(int i=0;i<daluan.size();i++) {//在打乱后的数字中分牌
		 if(i>=51) {
			 dipai.add(daluan.get(i));
		 }else {
			 if(i%3==0) {
				 play.add(daluan.get(i));
			 }else if(i%3==1) {
				 play1.add(daluan.get(i));
		    } else{
			 play2.add(daluan.get(i));
		 }
		 }
	 }
	 Collections.sort(play);
	 Collections.sort(play1);
	 Collections.sort(play2);
//	 Collections.sort(dipai)args;
	 
	 //要输出的集合
	  LinkedList<String> isplay=new LinkedList<String>();
	  LinkedList<String> isplay1=new LinkedList<String>();
	  LinkedList<String> isplay2=new LinkedList<String>();
	  LinkedList<String> iddipai=new LinkedList<String>();
        for (Integer key : dipai) {
			iddipai.add(jiehe.get(key));
		}
        for(Integer key : play1) {
        	isplay1.add(jiehe.get(key));
        }
       for(int i=0;i<play2.size();i++) {
    	   isplay2.add(jiehe.get(i));
       }
       
        for (Integer key : play) {
			isplay.add(jiehe.get(key));
		}
        System.out.println("玩家1:"+isplay);
        System.out.println("玩家2:"+isplay1);
        System.out.println("玩家3:"+isplay2);
        System.out.println("底牌:"+iddipai);
}
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金石不渝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值