博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
集合案例:斗地主
阅读量:3966 次
发布时间:2019-05-24

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

1.步骤分析

1.准备牌: 54张牌,存储到一个集合中 特殊牌:大王,小王其他52张牌:

定义一个数组/集合,存储4种花色:黑 红 梅 方

定义一个数组/集合,存储13个序号:2,A K Q… 4 3 循环嵌套遍历两个数组/集合组装52张牌

2.洗牌:使用集合工具类Collections的方法

static void shuffle(List<?> list) 使用指定的随机源对指定列表进行置换。 会随机的打乱集合中元素的顺序

3.发牌

要求: 1人17张牌,剩余3张作为底牌,一人一张轮流发牌:集合的索引 (0-53)%3

定义4个集合,存储3个玩家的牌和底牌
素引%3,有三个值(0,1,2)
0%3=0 1%3=1 2%3=2 分别发给三个玩家
索引>=51改底牌发牌

4.看牌:直接打印集合,遍历存储玩家和底牌的集合

2.代码实现

public class Doudizhi {
public static void main(String[] args) {
//定义一张54张牌的ArrayList集合 List
puke = new ArrayList<>(); //定义两个数组,分别储存牌的花色和序号 String[] colors= {
"♠","♥","♣","♦"}; String[] numbers= {
"2","A","K","Q","J","10","9","8","7","6","5","4","3"}; //先把大小王存储到puke中 puke.add("大王"); puke.add("小王"); //组装52张牌 for (String number : numbers) {
for (String color : colors) {
//把组装好的牌放入puke中 puke.add(color+number); } } //System.out.println(puke); 看一下原始牌的效果 Collections.shuffle(puke);//洗牌 //System.out.println(puke);//看一下洗牌了的效果 //发牌 List
player1=new ArrayList<>(); List
player2=new ArrayList<>(); List
player3=new ArrayList<>(); List
dipai=new ArrayList<>(); for (int i = 0; i < puke.size(); i++) {
//获取每一张牌 String p = puke.get(i); if(i>=51) {
dipai.add(p);//给底牌发牌 } else if(i%3==0) {
player1.add(p); //给玩家1发牌 } else if(i%3==1) {
player2.add(p); //给玩家2发牌 } else if(i%3==2) {
player3.add(p); //给玩家3发牌 } } //看牌 System.out.println("周润发:"+player1); System.out.println("刘德华:"+player2); System.out.println("周星驰:"+player3); System.out.println("底牌"+dipai); }}

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

你可能感兴趣的文章
在帧缓冲上显示jpg格式的图片
查看>>
jpeglib使用指南
查看>>
jpeglib使用指南
查看>>
IJG&nbsp;JPEG&nbsp;函数库:文件列表
查看>>
undefined&nbsp;reference&nbsp;to&nbsp;`jpeg_std…
查看>>
V4L2摄像头获取单幅图片测试程序
查看>>
Video&nbsp;for&nbsp;Linux&nbsp;Two&nbsp;API&nbsp;Specific…
查看>>
Video&nbsp;for&nbsp;Linux&nbsp;Two&nbsp;API&nbsp;Specific…
查看>>
V4L2&nbsp;-&nbsp;Linux下视频驱动模型
查看>>
V4L2&nbsp;-&nbsp;Linux下视频驱动模型
查看>>
pthread_create使用类中函数指针的…
查看>>
pthread_create使用类中函数指针的…
查看>>
实用技巧:Gdbserver远程调试的具…
查看>>
实用技巧:Gdbserver远程调试的具…
查看>>
静态成员函数调用非静态成员变量-p…
查看>>
静态成员函数调用非静态成员变量-p…
查看>>
基于ARM与DSP的智能仪器系统设计
查看>>
基于ARM与DSP的智能仪器系统设计
查看>>
微处理器中各种总线简介(转载)
查看>>
linux库知识,静态库和动态库
查看>>