关于扑克游戏的大学生期末小组作业
关于小组作业的事项安排:
- 我们将采用Github进行版本管理与更新日志汇总,方便统一进度、小组合作
- 我们需要将自定义函数统一在一个 .c 文件中编写,并统一在一个 .h 文件中声明
- 我们将遵循看变量名与函数名知道功能的命名规则,不允许使用拼音命名法,同时每个变量定义时旁边应有注释注明功能
- 我们不应出现莫名奇妙的常数,如出现常数,要么使用注释,要么使用#define
- 常量命名应为全大写英语,若单词过长请使用下划线隔开,如:SUDENT_GRADE
- 变量名如过长一样应采取下划线分割的方式,不过请使用小写字母
- 我们将采用 .docx 格式编写报告文档
- 我们将采用markdown编写日志、更新等
- 格式美观方面:
- 功能强相关的代码应放在一起,组成一个代码段,前后都应有空行与其余代码段隔开
- 逗号后面应加一个空格,如:
printf("%s", c); - 各种关系符的前后都应加空格,如:
if (s == NULL || n < 0 || len < 0) - 如果A在B的代码块(即花括号中)那么B的所有内容的首行应比A多一个Table键的缩进
- 成对的{}应出现在同一列上,便于查找
如:
for (i = n;; i++)
{
*(s + i) = *(s + i + len);
if (*(s + i + len) == ' ')
{
break;
}
}- 玩家选择是否继续游戏
- 输入玩家数量
- 为每位玩家发五张牌
- 点数中1为最小点,13为最大点
- 花色从小到大依次为:♦、♣、♥、♠
- 比较每位玩家的牌型的大小,大者胜
从大到小依次是:
1. 同花顺(花色相同的顺子)
2. 顺子(点数依次递增的五张牌)
3. 炸弹(四张点数相同的牌)
4. 三带二(三张点数相同的牌带上一对对子)
5. 三张(三张点数相同的牌)
6. 两对(两对对子)
7. 对子(两张点数相同的牌) - 若牌型相同,则比较玩家手牌中关键牌(让其拥有牌型的牌)的点数大小,若有多张,取最大
- 若该点数还相同,则比较关键牌花色大小
所有玩家一开始都有相等的资产,每局玩家都必须进行一个固定数值的下注。玩家一开始能看到自己的全部牌,而只能看到其余玩家的部分牌(比如每人都展示三张牌),这时电脑玩家应基于自己的手牌,通过胜负预测函数进行胜率预测,该预测数值达到某一值后,电脑会选择翻倍赌注。同样的,人类玩家也应通过其他玩家是否加注,结合场上情况,判断自己是否翻倍,最终获胜者会获得其余玩家下的赌注乘上对应倍数的资产,若有玩家资产低于0将被踢出对局,场上玩家数量会对应地减少,直到人类玩家资产为0 / 人类玩家退出游戏 / 场上仅剩人类玩家一人
创建了Github的项目仓库,新增README,PPT和word文档
简单地构建了代码框架,其中Library用于存放.h文件,Doc用于存放.c文件
加入了有关是否退出或继续、输入玩家数量、发牌的函数
完成了判断胜负的函数的书写
简单修改了判断胜负的逻辑使其更符合直觉
在README中加入了待办事项便于合作
在README中加入了详细的游戏规则
完善了对卡牌的显示
- 加入下注功能
- 加上预测胜率功能
- 加入存储玩家ID与资产功能
- 将是否继续游戏、发牌、看牌等部分使用EazyX库图形化