1、C语言实现连连看南京航空航天大学计算机专业专业: 运算机科学与技术学院姓名: 杨万学号: 161310224“mymai”文件中代码#include using namespace std;#include #include #include #include #include #include #include lianliankaint main()Game mygame;int selection;while(true)mygamenu();cout请输入:endl数字1进入游戏;数字2继续游戏;数字3选择游戏难度;数字4选择游戏模式;数字5查看排行榜;数字0退出游戏.selection
2、;if(selection5)cout输入错误endl;system(cls);continue;DWORD game_start, game_end;switch(selection)case 1:char myname20;coutmyname;mygamme(myname);char ch;bool is_complete = true;DWORD load_start, load_end;load_start = GetTickCount();cout游戏地图加载中,请稍后. 2000) 简 单endl;cout 2. 普 通endl;cout 3. 困 难endl;docout请按相
3、应的数字键选择您需要的游戏难度difficulty_grade;mygammeDifficuties(difficulty_grade);while(!(difficulty_grade=1|difficulty_grade=2|difficulty_grade=3);system(cls);break;case 4:int model; 时模式endl;cout 2.无穷时模式endl;docout请按相应的数字选择您需要的游戏模式model;mygammeModel(model);while(!(model=1|model=2);break;case 5:mygamng();break;c
4、ase 0:exit(0);return 0;“lianlianka文件中代码#include using namespace std;#include #include #include #include #include #include #include #include lianlianka/*/*/*/Game:Game() ametime = gametime;strcpy(gamer.name,name);gamer.model = difficuties/4;saveg(char*)&gamer,sizeof(gamer);saveg();/*/*/*/void Game:Se
5、tName(char *myname)strcpy(name,myname);/*/*/*/bool Game:IsTEiminate1(int i1,int j1,int i2,int j2) bool flag1 = true; 进入游戏endl;cout2. 继续游戏endl;cout3. 设置难度endl;cout4. 设置模式endl;cout5. 排 行 榜endl;cout0. 退出游戏endl;/*/*/*/void Equal(Gamer &mygamer,Gamer gamertemp)mygamime = gamerime;mygam = gamer;strcpy(myg
6、am,gamer;void InitGamer(Gamer &mygamer)mygamime = ;mygam = 0;void SortingGamer(Gamer *gamerarray,int num)Gamer temp;for(int i=0;inum-1;i+)for(int j=i+1;j gamerarrayj.gametime)Equal(temp,gamerarrayi);Equal(gamerarrayi,gamerarrayj);Equal(gamerarrayj,temp);void Game:Ranking()int k=0;Gamer gamertemp;int
7、 i1 = 0;int i2 = 0;int i3 = 0;Gamer esaygame5;Gamer ordinarygame5;Gamer difficultgame5;fstream gamerfile;gamer(gamerinformatio,ios:in|ios:binary);if(!gamerfile)cout打开文件gamerinformation.dat失败endl;return;while(!gamer()gamer(char*)&gamertemp,sizeof(Gamer);if(gamer()break;if(gamer = 1)if(i15)Equal(esayg
8、amei1+,gamertemp);SortingGamer(esaygame,i1);elseif(gamerime esaygame4.gametime)Equal(esaygame4,gamertemp);SortingGamer(esaygame,5);if(gamer = 2)if(i25)Equal(ordinarygamei2+,gamertemp);SortingGamer(ordinarygame,i2);elseif(gamerime ordinarygame4.gametime)Equal(ordinarygame4,gamertemp);SortingGamer(ord
9、inarygame,5);if(gamer = 3)if(i35)Equal(difficultgamei3+,gamertemp);SortingGamer(difficultgame,i3);elseif(gamerime difficultgame4.gametime)Equal(difficultgame4,gamertemp);SortingGamer(difficultgame,5);gamer();coutendl简单模式:endl;cout 玩 家 游戏历时(秒) 排名endlendl;if(i1 = 0)coutendl没有玩家记录,快来创建新记录吧!endl;for(;ki
10、1;k+)cout esaygamek.name esaygamek.gametime k+1endl;coutendl一般模式:endlendl;if(i2 = 0)coutendl没有玩家记录,快来创建新记录吧!endl;for(;ki2;k+) cout ordinarygamek.name ordinarygamek.gametime k+1endl;coutendl困难模式:endlendl;if(i3 = 0)coutendl没有玩家记录,快来创建新记录吧!endl;for(;ki3;k+)cout difficultgamek.name difficultgamek.gameti
11、me k+1endl;”lianlianka头文件中代码typedef struct gamerint model; /游戏困难度char name20; /游戏者名字double gametime; /游戏时刻Gamer;class Gameprivate:int gamemodel; /游戏模式int endtime; /限时模式下游戏的终止时刻char name21; /游戏者用户名int score; /游戏得分double gametime; /游戏时刻int difficuties; /游戏难度,那个地址概念了三个难度,简单,一般,困难char gamemap1414;public
12、:Game(); /构造函数void BuildMap(); /构造游戏地图void SetName(char *myname); /设置用户姓名bool MapIsRight(); /检查构造的地图是不是正确void Reset(); /切换游戏地图void NewReset();void PaintMap(); /绘制地图void RepaintMap(); /从头绘制地图void SetGameDifficuties(int diff); /设置游戏的难度void SetGameModel(int mymodel); /设置游戏bool LoadMap();/从文件ma中加载地图void
13、 SaveMap(char *map); /因为随机产生数组的时间较长,因此选择将产生的地图数组存入文件中,以便下次使用bool IsGEiminate(int i1,int j1,int i2,int j2); /判定是不是可以拐弯排除bool IsVEiminate(int i,int j1,int j2); /是不是能够直线排除bool IsTEiminate2(int j1,int i1,int j2,int i2);/判定是不是可以转折排除(前后通排除)bool IsTEiminate1(int i1,int j1,int i2,int j2); /判定是不是可以转折排除(左右通排除
14、)bool IsEliminate(int i1,int j1,int i2,int j2); /判定是不是成对排除 void DoEiminate();/排除操作bool IsComplete(); /是不是完成了所有的排除,假设是是返回true,不然否会falsebool SaveFile(); void GameMenu(); /输出游戏菜单void SaveGamer(); /向文件中存储用户完成游戏后的时间和用户名int GetFileMapNum(); /取得文件中地图个数void SetGameTime(double mygametime); /设置用户完成游戏的时间double GetGameTime()return gametime; /获取用户完成游戏的时间int GetGameEndtime()return endtime;int GetGameModel()return gamemodel;void Ranking(); /排行榜int GetNoSpaceNum();bool IsGEiminate_sub2(int i1,int j1,int i2,int j2);bool IsGEiminate_sub1(int i1,int j1,int i2,int j2);