使用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]

最新文章

  1. js对象私有变量公有变量问题
  2. applet示例 WelcomeApplet.java &lt;Core Java&gt;
  3. ios 关联对象运用 objc_setAssociatedObject
  4. WCF入门教程五[WCF的通信模式]
  5. 添加远程链接MySQL的权限
  6. Ecshop文件结构,二次开发
  7. 使用Java反射(Reflect)、自定义注解(Customer Annotation)生成简单SQL语句
  8. Code::Blocks 的配色方案
  9. 【转】JQUERY相关的几个网站
  10. JavaScript中String对象处理HTML标记中文本的方法
  11. ABP依赖注入
  12. PHP设计模式之工厂模式
  13. python编写接口初识一
  14. 使用JDBC连接MySQL数据库的一个基本案例
  15. 什么是DDoS攻击?DDoS防御的11种方针详解
  16. cygwin 解压 tar.xz压缩包
  17. git图片
  18. linux下c的网络编程---转载
  19. Mongodb基础知识笔记
  20. pragma指令详解(转载)

热门文章

  1. Python基础:按位异或 ^ ,按位或 | ,按位与 &amp;
  2. JavaScript中的作用域和作用域链(边学边写)[看着别人的博客纯手敲]
  3. 基于netty实现rpc框架-spring boot客户端
  4. requets中urlencode的问题
  5. XML外部实体注入[转载]
  6. 【题解】P3349 [ZJOI2016]小星星 - 子集dp - 容斥
  7. redis:安装及基础知识(一)
  8. hadoop 伪分布配置
  9. webpack4 图片加载
  10. 2019-2020-1 20199308《Linux内核原理与分析》第五周作业