前言
程序内的单词全部保存于word.txt的文本文档中,玩家排名保存在rand.txt文本文档中。运行程序时,会自动读取文本中的内容。
游戏规则:①先请用户输入猜的单词数量,可以有一个默认值。②随机抽取单词,对每个单词,系统根据谜底单词长度在屏幕上显示相应个数'#',假设谜底单词为"hello",则在屏幕上输出"#####"。③玩家输入一个字母进行猜测,如果这个字母不在单词中,系统提示玩家不对;如果猜对字母,比如玩家输入了一个'l',则在屏幕上输出"--ll-"。④重复③,直到玩家在规定的次数内猜出了单词或者超过次数游戏失败。⑤显示玩家每个单词猜对与猜错次数等统计信息。如果玩家猜出单词,计算成绩,如进入前五名提示玩家并记录存储到记录文件中。⑥询问玩家是否开始新一轮猜词,如果玩家选“否”,则系统退到外面的菜单。
效果展示
一、函数接口
enum
{
EXIT=0,
START,
CHECK,
CLEAR
};
//玩家结构体声明
typedef struct
{
string name;
int right;//猜对单词个数
int wrong;//猜错个数
int score;//得分
}GamePlayer;
void Show_Menu();//展示菜单内容
void exitsystem();//退出系统
void PlayGame(char File[200][100], vector<GamePlayer>& v);//开始游戏
void Check();//查看排名
void OpenFile(char File[200][100]);//打开单词文档,导入到char数组中
void Clear();//清空玩家名单
int GuessWordNum(int& GWN);//设置猜单词的数量
string InputName(string& name);//输入玩家的姓名
void Sort(vector<GamePlayer>& v);//将vector数组中的玩家按分数排名
//对自定义类型的数组排序的前置比较函数
static bool myCompare(const GamePlayer& player1, const GamePlayer& player2);
void InFile(vector<GamePlayer>& v);//将排好序的玩家排名写入到"rand.txt"中
二、重要函数接口详解
1.菜单内容
void Show_Menu()
{
cout << "*****************************************" << endl;
cout << "**********欢迎使用猜单词小程序!*********" << endl;
cout << "*************0.退出单词小程序************" << endl;
cout << "*************1.开始游戏******************" << endl;
cout << "*************2.查看玩家排名**************" << endl;
cout << "*************3.清空玩家排名**************" << endl;
cout << endl;
}
2.退出程序
void exitsystem()
{
cout << "欢迎下次使用" << endl;
system("pause");
exit(0);
3.打开单词文件
void OpenFile(char File[200][100])
{
ifstream ifs;
int iline = 0;
ifs.open("word.txt", ios::in);
if (i