基于C++实现的21点游戏源码与详解

3星 · 超过75%的资源 需积分: 9 15 下载量 125 浏览量 更新于2024-07-31 2 收藏 96KB DOC 举报
本篇代码是基于C++编写的21点游戏实现,名为"21点益智游戏",由软日1010班游戏设计小组创作,负责人是陈振涛,完成于2011年5月6日。游戏的核心功能包括创建扑克牌数组、洗牌、玩家输入处理、游戏流程控制以及输出相关信息。 1. **游戏结构与全局变量**: - 使用了全局变量`Poker_num`来记录扑克的数量,`poke`作为动态数组存储扑克牌。 - 定义了一些外部函数如`creat_Poker`、`set_Poker`、`re_play`等,用于初始化、洗牌和重玩游戏。 2. **函数说明**: - `creat_Poker(Poker* name)`:用于创建扑克牌,但函数并未给出具体实现,可能涉及到随机生成或读取文件中的牌面数据。 - `set_Poker(Poker* p)`:洗牌函数,确保游戏公平性,可能采用Fisher-Yates算法实现。 - `de_cin()`:可能是获取用户输入的函数,用于接收玩家的操作指令。 - `output_information(Player& p1, const char* pp)`:输出玩家信息,`p1`为玩家对象,`pp`可能是字符串参数,用于定制输出格式。 - `input_information(Player& p, const char* pp, string mima)`:处理玩家输入,可能包括验证玩家操作是否有效,`mima`可能是错误提示信息。 - `new_output_information(Player& p, const char* pp)`:可能是一个未实现的新版本输出函数,用于更新或扩展信息展示。 3. **主函数**: - 主程序首先调用`creat_Poker(&poke[0])`创建扑克牌,接着进行洗牌,然后进入一个循环,等待用户输入并处理游戏逻辑。 - 循环内部没有直接显示扑克牌,但可能通过`poke[jp].show()`实现。玩家的输入和游戏结果判断可能在循环中进行,通过`de_cin()`函数获取玩家选择,然后调用相应的输入处理函数。 4. **额外功能**: - `fstream in_out`表明代码可能包含了文件操作,例如读取初始牌库或者保存游戏进度等功能。 5. **潜在改进**: - 虽然代码片段中部分函数没有完全展示,但可以推断出游戏可能存在单人模式和可能的多人模式,通过`Player`类管理不同玩家的牌组和状态。 - 为了增加游戏可玩性,可以添加更复杂的逻辑,如赌注系统、记分规则、游戏结束条件等。 这篇C++代码实现了一个基础的21点游戏,涉及到了基本的面向对象编程和游戏流程设计,同时可能利用了文件I/O和随机数生成等技术。开发者可以通过阅读和理解这些函数来深入学习C++编程以及游戏开发的基础知识。