Java 集合斗地主

具体需求

写一个模拟斗地主程序(比较简单),不需要花哨的界面,只在Console控制台显示。模拟斗地主的存牌、洗牌、发牌、看牌、对牌进行排序等操作。

大致实现步骤

  • 创建HaspMap存牌
  • 创建ArrayList存牌的索引
  • 设置花色与点数,并存储索引到ArrayList,存储索引和牌,实现存牌功能
  • 使用Collections.shuffle对索引进行打乱,实现洗牌功能
  • 使用TreeSet存储索引(TreeSet对值进行自动排序),实现发牌、排序功能
  • 输出看牌

实现代码

package Poker;
import java.util.*;
public class PokerDemoPlus {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HashMap<Integer,String> poker = new HashMap<Integer, String>();
		ArrayList<Integer> array = new ArrayList<Integer>();
		String[] colors = {"♦","♣","♥","♠"};
		String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
		
		int index = 0;
		for(String number : numbers)
			for(String color : colors) {
				poker.put(index, color+number);
				array.add(index++);
			}
		poker.put(index, "小王");
		array.add(index++);
		poker.put(index, "大王");
		array.add(index);
		
		Collections.shuffle(array);
		
		TreeSet<Integer> fqy = new TreeSet<Integer>();
		TreeSet<Integer> lhc = new TreeSet<Integer>();
		TreeSet<Integer> zwj = new TreeSet<Integer>();
		TreeSet<Integer> dp = new TreeSet<Integer>();
		
		for(int i = 0 ; i < array.size() ; i ++ ) {
			Integer x = array.get(i);
			if(i>=array.size()-3) dp.add(x);
			else if(i%3==0) fqy.add(x);
			else if(i%3==1) lhc.add(x);
			else if(i%3==2) zwj.add(x);
		}
		lookPoker("风清扬", fqy, poker);
		lookPoker("令狐冲", lhc, poker);
		lookPoker("张无忌", zwj, poker);
		lookPoker("底牌", dp, poker);
	}
	public static void lookPoker(String name,TreeSet<Integer> ts,HashMap<Integer, String> hs) {
		System.out.print(name + "的牌是:");
		for(Integer i : ts) {
			String s = hs.get(i);
			System.out.print(s + " ");
		}
		System.out.println();
	}
}

效果展示

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值