博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Map与List集合,实现斗地主的发牌看牌
阅读量:3914 次
发布时间:2019-05-23

本文共 1966 字,大约阅读时间需要 6 分钟。

使用Map与List集合,实现斗地主的发牌看牌

代码如下

package poker;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.List;import java.util.Map;public class Poker {
public static void main(String[] args) {
//定义Map集合,键是编号,值存储牌的字符串 Map
pokerMap=new HashMap
(); //定义list,储存编号 List
pokerList = new ArrayList
(); //定义变量,保存编号 int index=0; String[] colors= {
"♠","♦","♥","♣"}; //定义13个点数数组 String [] numbers= {
"3","4","5","6","7","8","9","10","J","Q","K","A","2"};//遍历数组,组合点数和花色 for(String number:numbers) {
for(String color:colors){
//储存到Map集合中 pokerMap.put(index,color+number); //编号存储到List集合中 pokerList.add(index); index++; } } //储存王牌 pokerMap.put(52, "🃏"); pokerMap.put(53, "🃏"); pokerList.add(52); pokerList.add(53); //存储编号的List,元素随机排列 Collections.shuffle(pokerList);//定义4个集合,三个放玩家,一个放底牌 List
player1 = new ArrayList
(); List
player2 = new ArrayList
(); List
player3 = new ArrayList
(); List
bottom = new ArrayList
(); //循环遍历,储存编号的集合,进行发牌 for (int i = 0; i < pokerList.size(); i++) { //发底牌 if (i<3) { bottom.add(pokerList.get(i)); }else { if (i%3==0) { //发牌给玩家1 player1.add(pokerList.get(i)); } else if (i%3==1) { player2.add(pokerList.get(i)); }else if (i%3==2) { player3.add(pokerList.get(i)); } } //玩家集合,排序号的排序 Collections.sort(player1,Collections.reverseOrder()); Collections.sort(player2,Collections.reverseOrder()); Collections.sort(player3,Collections.reverseOrder()); Collections.sort(bottom,Collections.reverseOrder());//看牌,玩家集合中的编号,作为键,到Map集合中找值} look("刘德华", pokerMap, player1); look("周星驰", pokerMap, player2); look("周瑞发", pokerMap, player3); look("底牌", pokerMap, bottom); }/* * 定义看牌方法,遍历集合 * 需要编号集合,需要储存牌的Map集合 * */ public static void look(String name,Map
map, List
list){ System.out.print(name+": "); for(Integer key:list) { String value=map.get(key); System.out.print(value+" "); } System.out.println(); }}

转载地址:http://gkprn.baihongyu.com/

你可能感兴趣的文章
Java并发编程之阻塞队列与Fork/Join框架
查看>>
并发、并行傻傻分不清楚?
查看>>
一个Java程序员该有的良好品质
查看>>
程序员创业之如何获取第一笔风险投资
查看>>
听说小米进入世界500强啦?解读历年500强数据了解国情
查看>>
Maven中央仓库发布历程
查看>>
springBoot的过滤器,监听器,拦截器
查看>>
树状数组入门(简单的原理讲解)
查看>>
程序员的迷茫,迷茫的程序员
查看>>
datawhale课程[动手学数据分析]——Task01:数据加载及探索性数据分析
查看>>
datawhale课程[动手学数据分析]——Task02:数据清洗简述
查看>>
《统计学习方法第二版》学习笔记2——感知机
查看>>
《统计学习方法第二版》学习笔记3——K近邻法
查看>>
MySQL: win10安装MySQL 8.0.21成功记录【转载】
查看>>
IT从业者的迷思与求解之道——座谈会实录摘选
查看>>
程序员过关斩将--数据库的乐观锁和悲观锁并非真实的锁
查看>>
被忽略的TraceId,可以用起来了
查看>>
[原]调试PInvoke导致的内存破坏
查看>>
【NServiceBus】什么是Saga,Saga能做什么
查看>>
ASP.NET Core 集成测试中模拟登录用户的一种姿势
查看>>