转载:https://www.cnblogs.com/jiqing9006/p/6107892.html
同时这段代码在李刚老师疯狂JAVA讲义这本书中也有

import java.util.*;/*** Created by Jiqing on 2016/11/27.*/
public class ShowHand { // 梭哈// 定义该游戏最多支持多少个玩家private final int PLAY_NUM = 5;// 定义扑克牌的花色和数值private String[] types = {"方块","草花","红心","黑桃"};private String[] values= {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};// cards 扑克牌private List<String> cards = new LinkedList<String>();// 定义所有玩家private String[] players = new String[PLAY_NUM];// 玩家手上的扑克牌private List<String>[] playersCards = new List[PLAY_NUM];/*** 初始化扑克牌,放入52张扑克牌* 通过shuffle随机排序*/public void initCards() {for(int i = 0 ; i < types.length ; i ++) {for (int j = 0;j<values.length;j++) {cards.add(types[i]+values[j]);}}// 随机排列Collections.shuffle(cards);}/*** 初始化玩家*/public void initPlayer(String...names) {if (names.length > PLAY_NUM || names.length <2) {System.out.println("玩家数量不对");return;} else {for (int i = 0;i<names.length;i++){players[i] = names[i];}}}/*** 初始化玩家手中牌*/public void initPlayerCards() {for (int i = 0;i<players.length;i++) {if (players[i] != null && !players[i].equals("")) {playersCards[i] = new LinkedList<String>();}}}/*** 输出全部扑克*/public void showAllCards() {for (String card :cards) {System.out.println(card);}}/*** 派发扑克* @param first最先派给谁*/public void deliverCard(String first) {int firstPos = ArrayUtils.search(players,first);// 依次给该玩家之后的人发牌for (int i = firstPos;i<PLAY_NUM;i++) {if (players[i] != null) {playersCards[i].add(cards.get(0)); // 获取第一张牌cards.remove(0);// 移除第一张牌}}// 依次给玩家之前的人发牌for (int i = 0 ; i<firstPos;i++) {if (players[i] != null) {playersCards[i].add(cards.get(0));cards.remove(0);}}}/*** 输出玩家手上的扑克牌**/public void showPlayerCards() {for (int i=0;i<PLAY_NUM;i++) {if (players[i] != null) {System.out.println(players[i] + ":");for (String card:playersCards[i]) {System.out.print(card+"\t");}}System.out.print("\n");}}public static void main(String[] args) {ShowHand sh = new ShowHand();sh.initPlayer("电脑","纪庆");sh.initCards();sh.initPlayerCards();sh.showAllCards();System.out.println("--------------");sh.deliverCard("纪庆");sh.showPlayerCards();sh.deliverCard("电脑");sh.showPlayerCards();}}class ArrayUtils
{/*** 定义一个工具方法,工具方法从字符串数组中找到对应的字符串元素的位置* @param array 搜索的数组* @param target 搜索的字符串* @return 目标字符串出现的位置,-1表明找不到*/public static int search(String[] array, String target){for (int i = 0 ; i < array.length ; i++ ){if (array[i] != null && array[i].equals(target)){return i;}}return -1;}
}

Java梭哈游戏部分实现代码相关推荐

  1. Java控制台游戏~600行代码实现打怪小游戏

    Java控制台游戏~600行代码实现打怪小游戏(多图预警) 一,先放个启动界面(一些英雄,怪物技能介绍跟装备属性都写在里边): 二,在这个简单的小游戏里,你可以体验到: 1.打怪: 2.随机玩法寻宝: ...

  2. 飞翔的小鸟--Java小游戏实战(代码完整)

    一.写在前面: <飞扬的小鸟>是一款曾经比较火热的小游戏,本文可以带你你从零开始,一步一步的开发出这款小游戏. 语言 Java 工具 IntelliJ IDEA,JDK 16 准备工作 创 ...

  3. 复习Java小球游戏代码分享Java面试题MySQL中常用的锁生活【记录一个咸鱼大学生三个月的奋进生活】021

    记录一个咸鱼大学生三个月的奋进生活021 复习Java小球游戏 游戏界面的代码 小球运动线程的代码 运行游戏的代码 运行结果 代码分享 学习Java面试题(MySQL中常用的锁) 照片分享 复习Jav ...

  4. java完成九宫格数独_简单实现java数独游戏

    本文实例为大家分享了java数独游戏的具体代码,供大家参考,具体内容如下 打算把javaFx需要的组件装好以后直接用javaFx的,但似乎eclipse的版本不对,安装了也不能用... 数独代码是在之 ...

  5. JAVA实现梭哈游戏(初级版本)

    JAVA实现梭哈游戏(初级版本) 最近在学习JAVA的集合,写了一个梭哈游戏实践一下 里面包含List,Set,Map等集合的常见用法 以后会逐渐在这个程序的基础上加入多线程和网络编程等方面的细节 此 ...

  6. java猜拳游戏代码_Java实现简单猜拳游戏

    本文实例为大家分享了java实现简单猜拳游戏的具体代码,供大家参考,具体内容如下 看网上的猜拳游戏那么多,但都是用switch输入数字,所以用if嵌套,写一个简单的猜拳游戏 package game; ...

  7. JAVA小游戏有源代码,非常详细的注释,以及自己做的答辩PPT

    JAVA小游戏--阴阳师版三国战纪 阴阳战纪 具体的实现方法 程序 效果 阴阳战纪 由于疫情原因,我们班的生产实习被告知要在线上举行,然后老师给我们上了三天的网课,教我们用JAVA来制作一个小游戏,因 ...

  8. java弹球游戏代码_Java实现简单的弹球游戏

    本文实例为大家分享了Java实现简单的弹球游戏的具体代码,供大家参考,具体内容如下 该程序主要是用于对java图形化界面编程进行联系,程序实现全部采用的是AWT包下的类. 程序仅做参考,供学习使用. ...

  9. java太阳系_Java太阳系小游戏分析和源代码

    Java太阳系小游戏分析和源代码 -20150809 近期看了面向对象的一些知识.然后跟着老师的解说做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下近期学的知识: 用到知识点:类的继承.方法的重载 ...

最新文章

  1. 怎么修改gif图片中的文字[实用]
  2. ThreadPoolExecutor的一点理解 专题
  3. webservice xsd.exe根据xml生成xsd。然后根据xsd生成java bean
  4. LeetCode 1060. 有序数组中的缺失元素(二分查找)
  5. MySQL二进制日志操作
  6. 懒人版黑苹果mbr安装_MBR和GPT的区别,选择适合自己的
  7. linux安装外部软件,科学网—Madagascar 软件安装方法(Ubuntu下,适用于其他Linux系统) - 罗飞的博文...
  8. mysql 免安装 自启动_MYSQL在Win下免安装zip
  9. LREC'22 | 机器翻译中细粒度领域自适应的数据集和基准实验
  10. Python 筛法求素数
  11. 等离子显示器测试软件,等离子显示器驱动芯片内置ERC功能的测试方法
  12. 产品工作_技术与产品的异同
  13. ad17编辑界面怎么检查未连线_EZCast投屏软件提示未发现装置,请检查网路连线状态怎么办?...
  14. Redis数据库的使用
  15. 【EPICS】在Ubuntu下安装epics及Asyn、Streamdevice工具包
  16. 小米笔记本2020版云测评
  17. oppo怎么打开科学计算机,OPPOr11的计算器怎么打开
  18. 零代码平台基于模型驱动开发流程和概念
  19. 布局管理--grid
  20. 常用字符集编码的概要特性(一)

热门文章

  1. European Soccer Database(欧洲足球数据集)
  2. 问渠那得清如许,唯有源头活水来
  3. Fiddler工具使用与配置 【实例整理】
  4. 怎样通过flash模板安装Facebook专页
  5. NanoDet目标检测新网络!比YOLO跑的还快
  6. java private修饰方法,private修饰的方法
  7. discuz!内置代码
  8. python销毁线程_Python 中的线程
  9. 人工智能选go还是python_Python不是为AI而生的,Golang会支配人工智能的下一个十年吗?...
  10. 高并发秒杀系统方案的优化