Java实现3人斗地主,洗牌,发牌,展示牌

news/2024/10/20 15:46:25/
斗地主综合案例:
1.准备54张牌,储存到一个集合中
特殊牌:大王小王
其他52张
定义一个集合,储存4种花色
定义一个集合,储存13种牌 从3,4,5,6,7,8,9,10,J,Q,k,A,2
循环嵌套遍历两个集合,组装52张牌
2.洗牌:
使用工具类Collections的方法
static void shuffle(Lis<?> list)//会随机打乱集合中元素的顺序
使用指定的随机源对指定列表进行置换
3.发牌:
一人17张牌,剩余3张作为底牌。一人一张轮流发牌
定义4个集合,存放3位玩家的17张牌,和3张底牌
package ExerciseDoudizhu;import java.util.ArrayList;
import java.util.Collections;/*
斗地主中和案例:
1.准备牌
2.洗牌
3.发牌
4.看牌*/
public class Doudizhu {public static void main(String[] args) {//1.准备牌 创建一个ArrayList集合,泛型使用StringArrayList<String> poker=new ArrayList<>();//定义两个数组,一个数组存储牌的花色,一个数组存储牌的序号String[] color={"♥","♠","♦","♣"};String[] num={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};//把大王小王存储进poker集合中poker.add("大王");poker.add("小王");//嵌套循环,组装这52张牌得到例如(♥3,♠3,♦3,♣3)for (String c:color){for (String n : num) {poker.add(c+n);//把组装好的牌放入poker集合中,此时poker集合已经拥有完整的54张牌了}}/*2.洗牌使用集合根据类Collections中的方法static void shuffle(Lis<?> list) 使用默认随机源对指定列表进行置换*/Collections.shuffle(poker);//洗牌操作/*3.发牌定义4个集合,来接收牌,三个集合放17张,一个集合放3张(底牌)*/ArrayList<String> player1=new ArrayList<>();ArrayList<String> player2=new ArrayList<>();ArrayList<String> player3=new ArrayList<>();ArrayList<String> dipai=new ArrayList<>();/*遍历poker集合,获取每一张牌使用poker集合的索引%3给3位玩家轮流发牌剩余3张给底牌*/for (int i = 0; i <poker.size() ; i++) {String p= poker.get(i);//获取牌if(i>=51){dipai.add(p);}else if (i%3==0){player1.add(p);}else if (i%3==1){player2.add(p);}else if (i%3==2){player3.add(p);}}/*展示三位玩家的牌和底牌*/System.out.println(player1);System.out.println(player2);System.out.println(player3);System.out.println(dipai);}


http://www.ppmy.cn/news/306026.html

相关文章

Dubbo整合Spring Cloud出现的错误

本机电脑Macbook m1 pro 出现问题Connection refused (Connection refused), dubbo version: x.x.x, current host: xxx.xxx.xxx.xxx java.net.ConnectException: Connection refused (Connection refused) Connection refused (Connection refused), dubbo version: x.x.x, …

jQuery案例

1、下拉菜单 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style type"text/css">#father{width: 100%;text-align: center;}a{text-decoration: none;}#father>ul{list-style: non…

HTML中元素的id属性和HTML中的div和span

一、id属性 注意&#xff1a; 1、在HTML文档当中&#xff0c;任何元素&#xff08;节点都id属性&#xff0c;id属性是该节点的唯一标识。所以在同一个HTML文档当中id值不能重复。2、注意&#xff1a;表单提交数据的时候&#xff0c;只和name关系&#xff0c;和id无关。3、id什…

0-1背包 java,0-1背包问题,java的动态规划如题,代码如下public

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 0-1背包问题&#xff0c;java的动态规划 如题&#xff0c;代码如下 public class dongtaiguihua01 { public static void main(String []args) { int W10;//背包的总重量 int []w {2,2,6,5,4};//物品的相应重量 int []v {6,3,5,4,…

IT专业报考指南:选择正确的学校和课程

引言&#xff1a;随着高考的技术&#xff0c;男怕入错行&#xff0c;女怕嫁错郎&#xff0c;专业的选择也是至关重要的&#xff0c;当准备报考IT专业时&#xff0c;选择适合自己的学校和课程是至关重要的一步。随着信息技术的快速发展和应用范围的不断扩大&#xff0c;IT行业的…

Proxmark3 Easy Gui 5.0、5.13、5.2加强版介绍

一个偶然的机会&#xff0c;入手了一台PM3&#xff0c;学习了不少proxmark3的知识。下面就跟我一起看一看吧。 新版本 最新版本是2019.7.2日发布的 功能说明&#xff1a; * 固件支持-完美支持3.1及以上版本固件&#xff0c;支持Proxmark3-RDV2 DEV4.0 * 智能一键解析通常能解…

ProxmoxVE折腾记录(二)--版本升级

PVE6.0升级 官方F&Q https://pve.proxmox.com/wiki/FAQ#faq-support-table 升级说明 F&Q10条/11条系统版本说明及升级参考&#xff0c;这次准备升级到6.0, 5.4的debian,PVE都过了维护期,用着也不放心, 7.0又刚刚出来就不打算折腾了 先整这个&#xff0c;盘他&#xff0…

数码视讯Q5刷armbian+squeezelite

数码视讯Q5刷armbiansqueezelite 数码视讯Q5机顶盒介绍&#xff1a; 数码视讯Q5 CPU&#xff1a;晶晨S905M 4核1.5G 内存&#xff1a;1g 存储&#xff1a;8G 显卡&#xff1a;Mali-450 接口&#xff1a;HDMI USB2.0&#xff08;两个&#xff09; AV TF卡槽 …