编程思维:东东的扑克牌大战与排序算法
55 浏览量
更新于2024-08-31
收藏 65KB PDF 举报
本周的程序设计思维与实践作业B关注于东东和他的朋友们玩的一种简化版扑克牌游戏。在这个游戏中,所有的比较基于数字大小,而不考虑花色,每张牌都有一个数值代表,A对应1,J、Q、K分别代表11、12、13。玩家每人抽取五张牌组成一手牌,牌型包括大牌(总和最大)、对子、两对、三个、三带二、炸弹(四张相同)和顺子(连续五个数字)以及特殊的龙顺子(10-J-Q-K-A)。牌型之间的比较规则如下:
1. 大牌:若两边牌型都不是特定类型,则直接比较五张牌的总和。
2. 对子:比较两张值相等的牌,然后对比剩余三张牌的总和。
3. 两对:首先比较较大对子的大小,如相等则比较较小对子,再比较剩下的单张牌。
4. 三个:比较三个值相同的牌,如相等则对比剩余两张牌。
5. 三带二:同样先看“三个”的大小,再看“对子”,如果都一样,最后比较单张牌。
6. 炸弹:四个相同的牌比较,如相等则比剩下的那张牌。
7. 顺子:直接比较顺子中的最大值。
8. 龙顺子:这是一种特殊的顺子,固定顺序10-J-Q-K-A。
东东作为魔法师,需要根据这些规则来创建一个排行榜,将所有玩家的牌按照大小排序,如果牌型相同,则依据人名字典序决定排名。然而,在排行榜生成过程中,宇宙射线的干扰让东东面临挑战,他需要编写程序来处理这个复杂的牌型比较和排序任务。
这个作业涉及的知识点包括:
- 算法设计:理解并实现各种牌型的比较逻辑,这需要设计一种高效的算法来处理多类型的牌型判断和排序。
- 数据结构:可能用到数组或列表来存储每张牌的数值,以及数据结构来辅助比较和排序。
- 控制流程:如何在代码中嵌套条件判断以确定牌型并执行相应的比较。
- 排序算法:选择合适的排序算法(如冒泡排序、快速排序、归并排序等),以满足在相同牌型下的人名字典序排序需求。
- 编程语言基础:运用选定的编程语言(如Python、Java或C++)来实现以上逻辑。
完成这个作业不仅能够提升编程技能,还能锻炼逻辑思维、抽象能力和问题解决能力,是程序设计思维应用的一个实际场景。
2021-01-08 上传
2021-11-02 上传
2015-04-27 上传
2023-06-11 上传
2023-07-12 上传
2023-05-18 上传
2023-10-20 上传
2023-07-13 上传
2023-03-22 上传
2023-06-03 上传
weixin_38616809
- 粉丝: 6
- 资源: 981
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍