Java(斗地主案例)

news/2024/12/29 21:46:52/

斗地主案例的需求分析

 

斗地主案例的代码实现

package com.itheima.demo04.Test;import java.util.ArrayList;
import java.util.Collections;/*斗地主综合案例:1.准备牌2.洗牌3.发牌4.看牌*/
public class DouDiZhu {public static void main(String[] args) {//1.准备牌//定义一个存储54张牌的ArrayList集合,泛型使用StringArrayList<String> poker = new ArrayList<>();//定义两个数组,一个数组存储牌的花色,一个数组存储牌的序号String[] colors = {"♠","♥","♣","♦"};String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};//先把大王和小王存储到poker集合中poker.add("大王");poker.add("小王");//循环嵌套遍历两个数组,组装52张牌for(String number : numbers){for (String color : colors) {//System.out.println(color+number);//把组装好的牌存储到poker集合中poker.add(color+number);}}  // 生成一副扑克牌//System.out.println(poker);/*2.洗牌使用集合的工具类Collections中的方法static void shuffle(List<?> list) 使用默认随机源对指定列表进行置换。*/Collections.shuffle(poker);  // 洗牌//System.out.println(poker);/*3.发牌*///定义4个集合,存储玩家的牌和底牌ArrayList<String> player01 = new ArrayList<>();ArrayList<String> player02 = new ArrayList<>();ArrayList<String> player03 = new ArrayList<>();ArrayList<String> diPai = new ArrayList<>();/*遍历poker集合,获取每一张牌使用poker集合的索引%3给3个玩家轮流发牌剩余3张牌给底牌注意:先判断底牌(i>=51),否则牌就发没了*/for (int i = 0; i < poker.size() ; i++) {//获取每一张牌String p = poker.get(i);//轮流发牌if(i>=51){      // 剩下三张做底牌//给底牌发牌diPai.add(p);}else if(i%3==0){//给玩家1发牌player01.add(p);}else if(i%3==1){//给玩家2发牌player02.add(p);}else if(i%3==2){//给玩家3发牌player03.add(p);}}//4.看牌System.out.println("刘德华:"+player01);System.out.println("周润发:"+player02);System.out.println("周星驰:"+player03);System.out.println("底牌:"+diPai);}
}

 


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

相关文章

斗地主例子

斗地主 准备52大小王共54张牌 存放于数组或者集合当中用花色和牌面两个数组 嵌套循环组装牌洗牌 shuffle 使用指定的随机元对指定列表进行置换 打乱集合中元素的顺序发牌 定义四个集合 三个玩家 和底牌 索引%3看牌 遍历输出储存玩家和底牌的集合 package DemoDoudizhu;import…

斗地主游戏案例开发

* 业务需求 * 斗地主的做牌&#xff0c;发牌&#xff0c;排序&#xff0c;看牌 * 业务&#xff0c;54张牌 * 点数&#xff1a;"3","4","5","6","7","8","9","10","J&qu…

使用集合来完成一场斗地主

引言&#xff1a; 学习java这么久了&#xff0c;总归是要拿出一点有趣的东西哈&#xff0c;今天就给大家带来一个学集合当中有趣的一个&#xff0c;且知识点设计比较综合的一个例子&#xff0c;斗地主&#xff0c;当然基于目前的水平我们只解决一个发牌&#xff0c;看牌的简单操…

Java-斗地主小例子

//创建一个String类型的泛型集合ArrayList<String> poker new ArrayList<>();//定义两个数组&#xff0c;一个数组存牌的类型&#xff0c;一个存牌的序号String[] colors {"♥","♠","♦","♣"};String[] numbers {&qu…

关于斗地主类似案例

package com.guigu.test.homework19.listandset;import java.util.ArrayList; import java.util.Collections; import java.util.Comparator;/*1、用一个String[]数组存点数​ 2、用一个String[]数组存花色​ 3、用一个String[]数组存大王、小王​ 4、用上面的数组&#xff…

如何简单编写斗地主发牌程序

我们先来看一看要求 * 纸牌管理类 * 斗地主游戏规则如下: * 1.有三名玩家&#xff0c;可从控制台赋值玩家姓名&#xff0c;玩家中会有牌类集合的属性&#xff0c;还有是否是地主的状态 * 2.牌类有两个属性:花色和点数。花色有4种:黑红梅方&#xff08;可用枚举&#xff09;点数…

【Android】使用对象池(Object Pool)来缓存已经创建的字节数组,避免频繁地进行内存分配和回收操作提高性能

在Android中,使用new byte[]创建字节数组是在堆上分配内存,不会直接导致Native内存的增长。但是,如果我们频繁地创建和销毁字节数组,就可能会导致堆内存不足,并触发GC,从而影响应用程序的性能。 在Android中,堆内存的大小是有限制的。如果我们频繁地创建和销毁字节数组…

Leetcode | 40 组合总和II

40 组合总和II 文章目录 40 组合总和II题目官方解法&#xff1a;回溯思路与算法 codeReference 题目 给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能…