一·Map集合特点 : key-value形式 ,key唯一不能重复 .
二 List集合特点:一副牌 54张,4种花色 , 大小王 , J Q K A ,其他是 2,3,4…10
思路如下:
package com.hp.game;
import java.util.*;
/**
* 1. 用map存储 牌的信息
*key 存储1-54张的编号 ;
value 就是 花色+数字 组合牌的信息
*
* 2. 用list集合 存储 1-54张的编号
*
* 3. 用2个数组 分别存储 4种花色和 A ,2,3...J,Q ,K
*
* 4. 将 牌的具体内容放到 map和list
*
* 5. 发牌
*
* 6. 看牌
*/
public class Game {
public static void main(String[] args) {
//1. 用map存储 牌的信息
Map map=new HashMap<>();
// key 存储1-54张的编号 ;
value 就是 花色+数字 组合牌的信息
List list=new ArrayList<>();
//用两个数组储存花色和13张牌
String[]colors={"?","?","?","?"};
String[]numbers={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
int index = 0;
//记录编号
//将牌的信息放到上面的集合里面
//利用for循环
//共循环4 * 13 = 52 次
for (String num:numbers){
for (String col:colors){
map.put(index,col+num);
list.add(index);
index++;
}}
System.out.println("index="+index);
//剩下的两个编号就是大小王了
list.add(53);
list.add(54);
map.put(53,"大王");
map.put(54,"小王");
//发牌之前我们需要先把牌打乱对吧!组成随机 "数组"!
//shuffle洗牌。。。。。
Collections.shuffle(list);
//发牌开始(打牌的为三人,同时呢还要留三张底牌!)需要定义三个人和一个底牌 集合接收牌。
List p1 = new ArrayList<>();
List p2 = new ArrayList<>();
List p3 = new ArrayList<>();
//bottom设为底牌
List bottom = new ArrayList<>();
//具体发送 牌
for (int i=0;
i list, Map map) {
System.out.println(name+": ");
for (int i=0;
i
【map|斗地主 (3人斗地主) 通过程序将发牌过程实现,用到 Map 和 List集合】运行结果:
打印时记得换行
system.out.println
这样会美观一点
“system.out.print”
文章图片
推荐阅读
- list
- java|ObjectOrientedProgramming - 面向对象的编程(多态、抽象类、接口)- Java - 细节狂魔
- list|自己动手写 printf函数
- linux网络编程|linux名称解析函数简介——gethostbyname与getaddrinfo
- C语言|va_list
- Socket套接字|获取本机IP地址
- Set|集合
- 专业知识|Java 对两个list的对比操作工具类
- mfc|MFC ListControl如何使用