C语言课程作业——21点游戏(黑杰克/Black Jack),包含人机对局和双人对局两种模式。这是一个C语言或C++的经典问题,属于基本语法和算法的练习项目,也是学校《C语言程序课程设计》或《C++程序课程设计》的常见问题。本资源为参考代码,主要算法正在洗牌、发牌和机器人玩家的算法。如果在这个程序上有更优秀的算法,说明课程学习质量不错
重点:
1. 洗牌函数:用随机数生成牌面值,以时间作为随机数种子;
2. 机器人玩家:机器人玩家可以通过桌面的牌计算出剩余牌中再要一张牌不爆(超过21点成为爆)的概率,若不爆的概率小于50%则不再要牌(概率可以修改);
3. 对局规则:开局时两名玩家各取一张牌,然后判断是否要牌,玩家不要牌后本局游戏不可再要牌,两名玩家都不要牌或者有玩家手牌爆了则结束本局(每位玩家一局最多拿五张牌),有玩家爆了则没爆的玩家获胜,若两名玩家都爆了,本局平局,若两名玩家都没有爆,则点数大的玩家胜;
4. 牌局要求:每局获胜的玩家加一分,每场游戏进行五局。一场(五局)游戏结束,分数高的玩家获得最终胜利。玩家选择是否继续下一场游戏,是则继续(如果牌垛上还有牌则不洗牌),否则退出。
1