JAVA实现扑克牌发牌程序
![](https://csdnimg.cn/release/wenkucmsfe/public/img/starY.0159711c.png)
"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编程和面向对象设计的初学者来说,是一个很好的实践项目。通过扩展这个程序,可以添加更多的功能,比如检查是否有玩家胡牌、计算牌型等。
134 浏览量
261 浏览量
118 浏览量
615 浏览量
2023-09-10 上传
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
lhb92715
- 粉丝: 1
最新资源
- C++实现的注册表锁定与解锁函数
- IDL编程入门与实践:数据可视化分析
- 李建忠与侯捷:面向对象设计与应对复杂性的策略
- C++编写的多宿舍局域网聊天信使源码
- C++ U盘程序源码:基础文件传输与字符串操作
- Linux命令全览:cat、cd与chmod详解
- Sniffer中文教程:网络协议分析与故障解决
- Windows文件属性操作详解:包括隐藏、只读等设置
- C语言在嵌入式系统中的应用与挑战
- Web浏览器历史与AJAX基础
- SQL Server 设计与编码规范详解
- C#新版设计模式详解:从单例到访问者模式
- IAR EWARM入门教程:轻松开发ARM7应用
- Oracle函数参考指南
- Java编程入门:理解变量与类型
- 思科网络工程师认证实战指南