使用Java实现简单的斗地主案例
2024-09-05 21:45:19
使用Java实现简单的斗地主案例
案例说明:使用Java实现简单的斗地主洗牌发牌的操作;
具体规则:
共有54张牌,顺序打乱;
三个玩家参与游戏,三人交替摸牌,每人17张牌,最后留三张为底牌(地主牌)。
具体代码实现步骤:
扑克牌准备操作
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class PokerGame {
public static void main(String[] args) {
//定义扑克牌的花色以及数字的数组
String[] flower = {"♥️","♠️","♣️","♦️"};
String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
//创建牌组集合
List poker = new ArrayList();
//组合扑克牌样式
//拿出每一个花色,然后跟每一个数字进行结合,储存在牌组中
for (int i = 0; i < flower.length; i++) {
for (int j = 0; j < numbers.length; j++) {
poker.add(flower[i].concat(numbers[j]));
}
}
//添加大小王到牌组集合中
poker.add("大王");
poker.add("小王");
//打印输出所有扑克牌测试
System.out.println(poker);
//定义三个玩家和地主牌的集合
List player1 = new ArrayList();
List player2 = new ArrayList();
List player3 = new ArrayList();
List dizhupai = new ArrayList();
//洗牌操作,使用shuffle方法
Collections.shuffle(poker);
System.out.println(poker); //测试牌有没有被打乱
//发牌操作
for (int k = 0; k<poker.size() ; k++) {
//留出三张牌存到底牌的集合中
if (k > 50) {
dizhupai.add(poker.get(k));
} else if (k % 3 == 0) {
player1.add(poker.get(k));
} else if (k % 3 == 1) {
player2.add(poker.get(k));
} else if (k % 3 == 2) {
player3.add(poker.get(k));
}
}
//最终看牌操作
System.out.println("玩家一的牌"+player1);
System.out.println("玩家二的牌"+player2);
System.out.println("玩家三的牌"+player3);
System.out.println("地主牌"+dizhupai);
}
}
结果展示
玩家一的牌:[♥️9, ♠️A, ♠️5, ♥️A, ♥️2, ♥️10, ♠️7, ♣️J, ♥️3, ♠️2, ♣️5, ♦️2, ♠️6, ♥️7, ♦️K, ♣️9, 大王]
玩家二的牌:[♦️9, ♠️4, ♣️4, ♣️10, ♥️J, ♦️4, ♥️8, ♥️5, ♦️A, ♣️A, ♦️7, ♦️3, ♦️Q, ♣️K, ♥️6, ♣️3, ♠️Q]
玩家三的牌:[♣️Q, ♣️2, ♣️8, ♣️7, ♥️Q, ♦️10, ♠️8, ♣️6, ♥️4, ♠️10, 小王, ♥️K, ♠️3, ♦️8, ♦️6, ♠️K, ♠️J]
地主牌:[♠️9, ♦️5, ♦️J]
最新文章
- js对象私有变量公有变量问题
- applet示例 WelcomeApplet.java <;Core Java>;
- ios 关联对象运用 objc_setAssociatedObject
- WCF入门教程五[WCF的通信模式]
- 添加远程链接MySQL的权限
- Ecshop文件结构,二次开发
- 使用Java反射(Reflect)、自定义注解(Customer Annotation)生成简单SQL语句
- Code::Blocks 的配色方案
- 【转】JQUERY相关的几个网站
- JavaScript中String对象处理HTML标记中文本的方法
- ABP依赖注入
- PHP设计模式之工厂模式
- python编写接口初识一
- 使用JDBC连接MySQL数据库的一个基本案例
- 什么是DDoS攻击?DDoS防御的11种方针详解
- cygwin 解压 tar.xz压缩包
- git图片
- linux下c的网络编程---转载
- Mongodb基础知识笔记
- pragma指令详解(转载)
热门文章
- Python基础:按位异或 ^ ,按位或 | ,按位与 &;
- JavaScript中的作用域和作用域链(边学边写)[看着别人的博客纯手敲]
- 基于netty实现rpc框架-spring boot客户端
- requets中urlencode的问题
- XML外部实体注入[转载]
- 【题解】P3349 [ZJOI2016]小星星 - 子集dp - 容斥
- redis:安装及基础知识(一)
- hadoop 伪分布配置
- webpack4 图片加载
- 2019-2020-1 20199308《Linux内核原理与分析》第五周作业