java进阶案例下载_Java进阶--集合泛型综合应用案例(斗地主)

案例介绍

按照斗地主的规则,完成洗牌发牌的动作。

具体规则:

使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。

案例分析

准备牌:

牌可以设计为一个ArrayList,每个字符串为一张牌。

每张牌由花色数字两部分组成,我们可以使用花色集合与数字集合嵌套迭代完成每张牌的组装。

牌由Collections类的shuffle方法进行随机排序。

发牌

将每个人以及底牌设计为ArrayList,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌。

看牌

直接打印每个集合。

代码实现

package 集合和泛型.斗地主案例;

import java.util.ArrayList;

import java.util.Collection;

import java.util.Collections;

public class Poker {

public static void main(String[] args) {

/*

* 1: 准备牌操作

*/

ArrayList pokerBox = new ArrayList<>();

ArrayList colors = new ArrayList<>();

ArrayList numbers = new ArrayList<>();

colors.add("♠");

colors.add("♥");

colors.add("♣");

colors.add("♦");

numbers.add("J");

numbers.add("Q");

numbers.add("K");

numbers.add("A");

for (int i = 2; i <= 10; i++) {

numbers.add(i+"");

}

// 装牌

pokerBox.add("小☠");

pokerBox.add("大☠");

for(String c:colors){

for(String n:numbers){

pokerBox.add(c+n);

}

}

// 洗牌

Collections.shuffle(pokerBox);

// 发牌

ArrayList palyer1 = new ArrayList<>();

ArrayList palyer2 = new ArrayList<>();

ArrayList palyer3 = new ArrayList<>();

ArrayList dipai = new ArrayList<>();

for (int i = 0; i < pokerBox.size() ; i++) {

String card = pokerBox.get(i);

if(i >= 51){

dipai.add(card);

}else {

if(i%3 == 0){

palyer1.add(card);

}else if(i%3 ==1){

palyer2.add(card);

}else{

palyer3.add(card);

}

}

}

// 看牌

System.out.println(palyer1);

System.out.println(palyer2);

System.out.println(palyer3);

System.out.println(dipai);

}

}

输出模拟结果

0915ab122895cfcccb77b5049b4c687b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值