猜单词游戏

来源:互联网 发布:mac ae 插件 百度云盘 编辑:程序博客网 时间:2024/05/21 08:11

游戏说明

运行须知:

  请将压缩文件中的list.txt englishi.txt people.txt answer.txt放入D盘中的game文件夹中才能正常运行游戏,或者更改文件途径。

 

  输入1可以登录用户,输入2可以游客试玩,用户登录可以查看单词本,里面有本游戏所粗存的所有单词及意思,游客只能游戏,不能查看单词本,如果强行查看只有强行退出游戏重开。

 

  目前可以登录的四个用户是:

账号 密码

2001 2001

2002 2002

2005 2005

2333 4666

(注册功能暂未开启。。。。。。。QAQ)

 

游戏规则:

系统会在储存的单词中随机挑选一个单词并抹去其中一个字母。你需要猜测“*”部位的字母。在生词模式下,你可以将词汇加入生词本。在怀旧模式下,你所猜测的是你加入生词本的词。玩家登陆有福利可以查看词典。

 

代码简介:

有一个people类,配合文件一起进行登录操作,运用了文件存储单词,学习了使用随机数,用了数组储存文件中的内容,有菜单界面函数,游戏函数,登录函数,在代码中有注释。

 

思路:

   刚开始的时候按要求先写出了最基础的,猜单词,然后在猜单词的基础上开始回忆玩过的游戏,开始分游戏的模式,然后开始有用户登录和玩家试玩,看起来更像游戏,为了区分玩家和游客的区别又在玩家方面加了可以看单词本的功能。

#include <iostream>#include <fstream>#include <string>#include<ctime>#include<conio.h>using namespace std;class people{public:int snum;int spassword; people * next;};people *head1=NULL;void menu();//菜单函数void star();//链接游戏的函数void instruction();//游戏说明void startgame1();//生词模式函数void startgame2();//怀旧模式函数void denglu();//玩家登陆函数void enter();//没啥大用的链接其他函数的函数void danci();//登录用户查看单词本的函数int main(){cout<<"玩家登陆请输入1,游客试玩请输入2,退出请输入0"<<endl;int n;while(n){cout<<"请选择操作"<<endl;cin>>n;switch(n){case 1:denglu();break;case 2:    star();break;}}}void star(){int xuanxiang;menu();//显示菜单while(xuanxiang)//选择操作{cout<<"请选择操作"<<endl;cin>>xuanxiang;system("cls");switch(xuanxiang){case 1:instruction();//游戏说明            menu() ; break;case 2:    enter();//游戏开始            menu() ; break;}}}void star2(){int xuanxiang;menu();//显示菜单while(xuanxiang)//选择操作{cout<<"请选择操作"<<endl;cin>>xuanxiang;system("cls");switch(xuanxiang){case 1:instruction();//游戏说明            menu() ; break;case 2:    enter();//游戏开始            menu() ; break;case 3:    danci();            menu() ; break;}}}void denglu(){int m,n;int snum,spassword;ifstream read("d:\\game\\people.txt",ios::in);read.seekg(0,ios::beg);cout<<"请输入账号"<<endl;cin>>m;cout<<"请输入密码"<<endl;cin>>n;while(read>>snum>>spassword){if(snum==m&&spassword==n)star2();}     read.close ();}void menu()  {cout<<"***************欢迎来到猜词游戏**************"<<endl;cout<<endl;cout<<endl;cout<<"*****************请选择操作******************"<<endl;cout<<endl;cout<<"*****************0.退出游戏******************"<<endl;cout<<endl;cout<<"*****************1.游戏规则******************"<<endl;cout<<endl;cout<<"*****************2.进入游戏******************"<<endl;cout<<endl;cout<<"*****************3.查看词典(仅登陆用户使用)"<<endl;cout<<endl;}void instruction()//等到全部做完再写游戏说明{cout<<"游戏规则:"<<endl;cout<<"系统会在储存的单词中随机挑选一个单词并抹去其中一个字母。"<<endl;cout<<"你需要猜测“*”部位的字母。"<<endl;cout<<"在生词模式下,你可以将词汇加入生词本。"<<endl;cout<<"在怀旧模式下,你可以练习曾经错过的词。"<<endl;cout<<"玩家登陆有福利可以查看词典哦。"<<endl;}void enter(){    cout<<"*****************1.生词模式******************"<<endl;cout<<endl;cout<<"*****************2.怀旧模式******************"<<endl;cout<<endl;cout<<"*****************0.退出游戏******************"<<endl;cout<<endl;int n;while(n){cout<<"请选择模式,0退出"<<endl;cin>>n;system("cls");switch(n){case 1:startgame1();break;case 2:startgame2();break;}}}void startgame1(){    cout<<"game star~~~~~~~~~~~你,准备好迎接挑战了吗?"<<endl;srand((unsigned)time(0));ifstream in;int ijudge;int iline=0,irand1,irand2,irand3,isize;int i=0;char s[100][100],*sline,s1,s2;//打开文件并将数据存到数组中in.open("d:\\game\\answer.txt",ios::in);if(in){while(!in.eof()){in>>s[iline];iline++;if(iline>=100)break;}}else cout<<"file not found!"<<endl;//随机选一个单词irand1=rand()%iline;//随机选一个单词isize=strlen(s[irand1]);//得到该单词长度srand(int(time(0)));irand2=rand()%isize;//随机选取某个字母位sline=new char[irand2];strcpy(sline,s[irand1]);for( i=0;i<=isize;i++){if(i==irand2){s1=s[irand1][irand2];s[irand1][irand2]='*';}}//开始游戏while(1){if(i==0){i++;}cout<<endl;cout<<s[irand1]<<endl;cout<<endl;cin>>s2;if(s1==s2){cout<<"答对啦~~~~"<<endl;s[irand1][irand2]=s1;}else{cout<<"答错了,要加油哦QAQ"<<endl;s[irand1][irand2]=s1;}cout<<"******是否将该单词加入生词本******"<<endl;cout<<"*********1-是,2-否***************"<<endl;cin>>ijudge;if(ijudge==1){ofstream input("d:\\game\\list.txt",ios::app);input<<s[irand1]<<endl;input.close();}cout<<"是否继续?1--是,2--否"<<endl;cin>>ijudge;if(ijudge==2)break;else{    srand(int(time(0)));irand1=rand()%iline;//随机选一个单词            isize=strlen(s[irand1]);//得到该单词长度srand(int(time(0)));            irand2=rand()%isize;//随机选取某个字母位            sline=new char[irand2];            strcpy(sline,s[irand1]);            for(int i=0;i<=isize;i++){            if(i==irand2){           s1=s[irand1][irand2];           s[irand1][irand2]='*';}}}}in.close();}void startgame2(){    cout<<"game star,温习巩固记忆更强"<<endl;srand((unsigned)time(0));ifstream in;int ijudge;int iline=0,irand1,irand2,irand3,isize;int i=0;char s[100][100],*sline,s1,s2;//打开文件并将数据存到数组中in.open("d:\\game\\list.txt",ios::in);if(in){while(!in.eof()){in>>s[iline];iline++;if(iline>=100)break;}}else cout<<"file not found!"<<endl;//随机选一个单词irand1=rand()%iline;//随机选一个单词isize=strlen(s[irand1]);//得到该单词长度srand(int(time(0)));irand2=rand()%isize;//随机选取某个字母位sline=new char[irand2];strcpy(sline,s[irand1]);for( i=0;i<=isize;i++){if(i==irand2){s1=s[irand1][irand2];s[irand1][irand2]='*';}}//开始游戏while(1){if(i==0){i++;}cout<<endl;cout<<s[irand1]<<endl;cout<<endl;cin>>s2;if(s1==s2){cout<<"答对啦~~~~"<<endl;s[irand1][irand2]=s1;}else{cout<<"答错了,要加油哦QAQ"<<endl;s[irand1][irand2]=s1;}cout<<"是否继续?1--是,2--否"<<endl;cin>>ijudge;if(ijudge==2)break;else{    srand(int(time(0)));irand1=rand()%iline;//随机选一个单词            isize=strlen(s[irand1]);//得到该单词长度srand(int(time(0)));            irand2=rand()%isize;//随机选取某个字母位            sline=new char[irand2];            strcpy(sline,s[irand1]);            for(int i=0;i<=isize;i++){            if(i==irand2){           s1=s[irand1][irand2];           s[irand1][irand2]='*';}}}}in.close();}void danci(){char danci[100],zhongwen[100];ifstream instuf("d:\\game\\englishi.txt",ios::in);instuf.seekg(0,ios::beg);if(!instuf){cout<<"file could not be open."<<endl;abort();}while(instuf>>danci>>zhongwen){cout<<danci<<"      "<<zhongwen<<endl;}instuf.close();}
请自己选择路径添加相应的txt文件


原创粉丝点击