斗地主例子

news/2025/1/1 17:54:55/

斗地主

  1. 准备52+大小王共54张牌 存放于数组或者集合当中
  2. 用花色和牌面两个数组 嵌套循环组装牌
  3. 洗牌 shuffle 使用指定的随机元对指定列表进行置换 打乱集合中元素的顺序
  4. 发牌 定义四个集合 三个玩家 和底牌 索引%3
  5. 看牌 遍历输出储存玩家和底牌的集合
package DemoDoudizhu;import java.util.ArrayList;
import java.util.Collections;/*
*    准备52+2张牌
* 洗牌
* 发牌
* 看牌
*  */
public class Doudizhu {public static void main(String[] args) {ArrayList<String> poker = new ArrayList<>();String [] color={"♥","♣","♦","♠"};//四种花色String [] numbers={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};poker.add("大王");poker.add("小王");for (String s : color) {for (String number : numbers) {
//                System.out.println(s+number);poker.add(s+number);//形成52张牌}}Collections.shuffle(poker);//洗牌 此函数是打乱顺序ArrayList<String> play1 = new ArrayList<>();//定义几位玩家ArrayList<String> play2 = new ArrayList<>();ArrayList<String>  play3 = new ArrayList<>();ArrayList<String> Dipai = new ArrayList<>();for (int i = 0; i < poker.size(); i++) {String s = poker.get(i);//获取索引下的牌if(i>=51)Dipai.add(s);//底牌3张else if (i%3==0)play1.add(s);//发牌else if (i%3==1)play2.add(s);else if (i%3==2)play3.add(s);}//看牌System.out.println("zqh"+play1);System.out.println("wxy"+play2);System.out.println("caohe"+play3);System.out.println("底牌"+Dipai);}
}

在这里插入图片描述


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

相关文章

斗地主游戏案例开发

* 业务需求 * 斗地主的做牌&#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 中的每个数字在每个组合中只能…

「SQL面试题库」 No_97 院系无效的学生

&#x1f345; 1、专栏介绍 「SQL面试题库」是由 不是西红柿 发起&#xff0c;全员免费参与的SQL学习活动。我每天发布1道SQL面试真题&#xff0c;从简单到困难&#xff0c;涵盖所有SQL知识点&#xff0c;我敢保证只要做完这100道题&#xff0c;不仅能轻松搞定面试&#xff0…