本篇将实现Java版的扑克牌游戏

目录

一、创建扑克牌Poker

二、游戏玩法创建

2.1买牌

2.2洗牌

2.3揭牌

三、测试游戏代码


一、创建扑克牌Poker

在游戏开始之前要创建扑克牌,其中扑克牌要具有花色和数字,而且要记住除了大小王以外,扑克牌工有四种花色,52张牌。要重写toString方法!!

代码如下:

public class Poker {private String suit;//花色private int rank;//数字public Poker(String suit, int rank) {this.suit = suit;this.rank = rank;}public String getSuit() {return suit;}public void setSuit(String suit) {this.suit = suit;}public int getRank() {return rank;}public void setRank(int rank) {this.rank = rank;}@Overridepublic String toString() {return "{ "+suit+" "+rank+"}";}
}

二、游戏玩法创建

2.1买牌

要先将52张扑克牌创建出来,并添加到集合中,以便于后续操作。

private static final String[] suits = {"♥","♣","♦","♠"};public List<Poker> buyPoker(){List<Poker> pokers = new ArrayList<>();for (int i = 0; i < 4; i++) {for (int j = 1; j <= 13; j++) {Poker poker = new Poker(suits[i], j);pokers.add(poker);}}return pokers;}

2.2洗牌

在玩之前,要将买来的牌用Random函数进行重新打乱,以便于每个人手中的牌大小不一样。

public void shuffle(List<Poker> pokers){for (int i = pokers.size()-1; i > 0; i--) {Random random = new Random();int index = random.nextInt(i);swap(pokers,i,index);}}private void swap(List<Poker> pokers, int i, int j){Poker tmp = pokers.get(i);pokers.set(i,pokers.get(j));pokers.set(j,tmp);}

2.3揭牌

每个人要进行抓牌,设置每个人手中抓五张牌,三个人进行游戏。

public List<List<Poker>> game(List<Poker> pokers){List<List<Poker>> hand = new ArrayList<>();List<Poker> hand1 = new ArrayList<>();List<Poker> hand2 = new ArrayList<>();List<Poker> hand3 = new ArrayList<>();hand.add(hand1);hand.add(hand2);hand.add(hand3);for (int i = 0; i < 5; i++) {for (int j = 0; j < 3; j++) {Poker removePoker = pokers.remove(0);hand.get(j).add(removePoker);}}return hand;}

三、测试游戏代码

public static void main(String[] args) {Game game = new Game();List<Poker> pokers = game.buyPoker();System.out.println(pokers);//洗牌game.shuffle(pokers);System.out.println("洗牌:");System.out.println(pokers);//揭牌List<List<Poker>> hand = game.game(pokers);System.out.println("揭牌:");for (int i = 0; i < hand.size(); i++) {System.out.println("第 "+(i+1)+"个人的牌:"+hand.get(i));}System.out.println("剩下的牌");System.out.println(pokers);}

 喜欢就三连一下吧!!!谢谢!!

Java实现扑克牌游戏(简易炸金花)相关推荐

  1. JAVA控制台扑克牌游戏,洗牌,发牌,比较大小

    此游戏是一个简单的并且很基础的java控制台程序.这个扑克牌游戏主要的游戏过程是:首先创建一副扑克牌,创建好了后要进行洗牌,牌洗好了,需要玩家来玩,接下来就创建玩家.有洗好的牌,也有玩家了,那么就开始 ...

  2. 炸金花游戏(4)--炸金花AI基准测试评估

    前言: 本文将谈谈如何评估测试炸金花的AI, 其实这个也代表一类的问题, 德州扑克也是类似的解法. 本文将谈谈两种思路, 一种是基于基准AI对抗评估, 另一种是基于测试集(人工选定牌谱). 由于炸金花 ...

  3. 炸金花游戏(1)--炸金花游戏的模型设计和牌力评估

    前言: 好久没写博客了, 今天来补上一篇, 是关于炸金花游戏模型的设计和牌力评估. 其核心思想和之前谈到过的德州模型很像, 本文也想为炸金花游戏这个系列开个头, 希望后面能写写AI相关的文章. 相关文 ...

  4. 炸金花游戏(2)--炸金花游戏的胜率预估

    前言: 我也是突然心血来潮, 想写写炸金花这类游戏的AI实现. 本文算是这一系列的第二篇, 主要写炸金花的胜率预估, 主要基于蒙特卡罗的思想, 胜率是炸金花AI的核心决策数据, ^_^. 相关文章: ...

  5. 用Java实现扑克牌的简易功能

    本文笔者将用Java实现简易的扑克牌打乱以及分发,还有展示未被抽走的扑克牌的功能,有兴趣的朋友可以接着往下写有关于扑克牌的玩法  我们先创建一副扑克牌,类中要包含扑克牌花色和点数,他的构造方法和toS ...

  6. JAVA制作小游戏———简易的桌球

    要求: 即使看不太懂,也要照着敲如下游戏代码,至少 5 遍. 要求所有字符和源文件一致. 如果报异常,请细心看所在行和老师代码有何区别.现阶段不需要理解代码的语法功能,只 要按照代码结构输入代码,能够 ...

  7. 可以和你女朋友一起玩的 《扑克牌游戏》

    扑克牌游戏(炸金花) 游戏简介 游戏功能介绍 代码实现 运行结果展示 1,游戏简介 这个游戏主要采用List实例ArrayList进行存储所有牌,每个玩家的手牌用一个List存储,用二维List存储所 ...

  8. 扑克牌游戏java代码_java实现简易扑克牌游戏

    本文实例为大家分享了java实现扑克牌游戏的具体代码,供大家参考,具体内容如下 游戏功能描述 1.创建一副扑克牌: 包括四种花色:黑桃,红桃,梅花,方片 包括十三种点数:2-10,J,Q,K,A 2. ...

  9. 纸牌游戏炸金花设计制作(C语言)

    纸牌游戏炸金花设计制作 (C语言) 我是编程爱好者.早期使用windows时就被扫雷游戏,钻石棋游戏,红心大战游戏迷住.相信大家也都玩过吧.在学习VB6编程时就编制过钻石棋和红心大战那样的游戏.都是标 ...

最新文章

  1. 基于java的作业管理系统_基于java的作业管理系统
  2. Vue.js生命周期
  3. C# GDI+ 生成自定义进度条
  4. win7桌面图标计算机打不开,win7系统下双击电脑桌面图标打不开的解决方法
  5. 当个年轻的又不太有经验的老板有多难?
  6. 重装系统Win10电脑磁盘被写保护怎么办
  7. 面向对象PHP之Clone对象
  8. linux中安装pip
  9. 迅为IMX8M mini开发板Yocto系统交叉编译C程序
  10. 咸鱼ZTMR实例—PS2手柄
  11. 【Axure原型分享】移动端可视化案例模板
  12. 算法题打卡-超人进化(剑指offer第一天)
  13. yamada算法_脉宽调制中的颤振算法
  14. java robust_Java的鲁棒性(Robust)
  15. [LeetCode]Burst Balloons 爆气球
  16. 东北师范大学计算机信息技术学院,东北师范大学计算机科学与信息技术学院2015年硕士研究生招生专业目录...
  17. WPS参考文献自动生成方法
  18. Linux入门推荐书籍
  19. 多径信道下的LMS、RLS均衡算法研究(三)
  20. c语言数字的ascii码范围,c的ascii码值是多少?

热门文章

  1. 哪个骨传导蓝牙耳机的好,推荐几款口碑高的骨传导耳机
  2. 2022骨传导蓝牙耳机哪个最专业、目前最好的骨传导耳机
  3. Ubuntu18.04美化桌面(主题、图标)
  4. iPhone 15 高端版本万元起步;华为授权 OPPO 使用其 5G 技术;DeepMind 推出 AI 编剧|极客头条
  5. Datawhale组队学习——Pytorch进阶训练技巧
  6. 第三次郑州.NET俱乐部活动总结
  7. 送什么礼物给小学生比较有纪念意义?适合送小学生的小礼物
  8. 后台管理系统(第一天)
  9. 成都二手房长啥样 —— 基于链家数据
  10. win10计算机 需要新应用,手把手为你win10系统商店出现“需要新应用打开此ms-windows-store”的还原步骤...