JAVA实现扑克牌发牌程序
4星 · 超过85%的资源 需积分: 14 64 浏览量
更新于2024-09-14
2
收藏 2KB TXT 举报
"JAVA扑克牌发牌程序是一个Java编程示例,用于教授初学者如何创建一个扑克牌类以及如何在多个玩家之间发牌。程序包括一个`Player`类和一个主类`a`,其中`Player`类表示一个玩家,包含了一个13个元素的整型数组来存储手牌,并提供了显示手牌的方法。主类`a`则用于生成随机牌并分配给四个玩家。"
在这个Java程序中,主要涉及以下知识点:
1. **类与对象**:
- `Player` 类:这是用来表示扑克牌游戏中的玩家的类。它具有一个整型数组 `card` 用于存储玩家手中的牌,以及一个字符串数组 `cname` 用于存储牌面的名称(如红桃、黑桃等)。
- 构造方法:`Player` 类的构造方法初始化 `card` 数组,将所有牌设置为未分配的值 `-1`。
2. **数组**:
- `card` 数组:这是一个大小为13的整型数组,用于表示玩家手上的牌,每张牌用一个介于0到51之间的整数表示。
- `dcard` 数组:这是一个大小为52的整型数组,用于表示剩余的扑克牌,初始时所有牌都是未分配的,即值为0。
3. **方法**:
- `show` 方法:这个方法接收一个整数 `id` 作为参数,返回对应索引的牌的名称。如果牌未分配,返回 "û"。
- `set_card` 方法:此方法接收两个参数 `id` 和 `x`,将指定位置 `id` 的牌设置为 `x`。如果 `id` 或 `x` 不在有效范围内,程序会打印错误信息。
4. **随机数生成**:
- `Random` 类:用于生成随机数,这里的目的是模拟洗牌和发牌过程。通过 `nextInt(52)` 方法生成0到51之间的随机整数。
5. **循环与条件语句**:
- 在主类 `a` 的 `main` 方法中,使用了循环和条件语句来分配扑克牌。首先,用一个循环将 `dcard` 数组的所有元素设为0,表示所有牌都未被分配。然后,通过另一个循环生成随机数,分配牌给四个玩家。如果生成的随机数已经分配过牌,则重新生成,直到找到一个未分配的牌。
6. **面向对象编程**:
- 实例化对象:创建四个 `Player` 对象 `p1`, `p2`, `p3`, `p4` 分别代表四位玩家。
- 对象间的交互:通过调用 `Player` 类的方法 `set_card` 来给玩家发牌,然后通过 `show` 方法来展示玩家手中的牌。
这个程序提供了一个基础的扑克牌发牌系统的框架,对于学习Java编程和面向对象设计的初学者来说,是一个很好的实践项目。通过扩展这个程序,可以添加更多的功能,比如检查是否有玩家胡牌、计算牌型等。
2022-06-10 上传
2021-01-04 上传
2008-02-10 上传
2019-07-10 上传
2023-09-10 上传
lhb92715
- 粉丝: 1
- 资源: 2
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫