300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > c语言课程设计--贪吃蛇

c语言课程设计--贪吃蛇

时间:2019-11-28 09:35:51

相关推荐

c语言课程设计--贪吃蛇

可以用dev直接运行哦

声音文件已被注释

#define _CRT_SECURE_NO_WARNINGS 1//#include<graphics.h>#include<stdio.h>#include<stdlib.h>#include <windows.h>#include<algorithm>#include<conio.h>#include <ctime>#include<iostream>#include<vector>#include <mmsystem.h>#include <fstream>#include<set>#include<map>#pragma comment(lib,"Winmm.lib")//播放音乐using namespace std;int RangeX = 6, RangeY = 6;int Range_hight = 20, Range_width = 20;void About_games();//关于游戏void help();//游戏帮助void start_game();//开始游戏void point_rang();//积分排名void mainmenu();//主菜单void gotoxy(int x, int y);//空格数与换行数void pause_game();//暂停游戏void myPause(int tn);//延时关闭void show(); //打印边界void jixushow(); //打印边界void print_Snake();//绘制字符画 --蛇void Game_difficulty();//游戏难度void background_musicss();//背景音乐int setColor(int c);//自定义颜色void game_over();//游戏结束void background___musicss();//死亡音乐void all_date(struct Snake* snake, struct Foodxy* food);//打印游戏过程的数据void move_snake(struct Snake* snake);//蛇的移动void get_food(struct Snake* snake, struct Foodxy* food);//普通食物生成void get_tanchi(struct Snake* snake, struct Foodxy* food);//加成食物生成void print_snake(struct Snake* snake);//打印蛇void eat_tan(struct Snake* snake, struct Foodxy* food);//食物加成void eat_food(struct Snake* snake, struct Foodxy* food);//吃食物void update(struct Snake* snake);//数据初始化void through_wall(struct Snake* snake, char ch);//穿墙int if_die(struct Snake* snake);//判断蛇是否死vector<pair<string, int >>aa;map<int, string>qqqq;multiset<string>bb;int i, j, p, q, temp, ppppp;int fen;//分数int earn;//额外分int a[2];//用于记住蛇尾坐标,其中a[0]、a[1]分别表示横、竖坐标int ff;//退出游戏的标志量int xx, yy;//继续后的食物坐标int tan_x, tan_y;//贪吃的食物的坐标。struct point {//积分结构char name[20];int fen;} all_points[50];/*bool cmp(point a, point b) {//自定义排序return a.fen > b.fen;}*/bool cmp(pair<string, int>a, pair<string, int>b) {return a.second > b.second;}struct Snake {//蛇的数据int x[100];int y[100];int food_count;int snake_length;int speed;};struct Foodxy {//食物坐标int x;int y;};void gotoxy(int x, int y) {//空格数与换行数COORD c;c.X = x;c.Y = y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);}int setColor(int c) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c);return 0;}//void background_musicss() {//背景音乐////mciSendString(TEXT("open E:\\贪吃蛇\\素材\\音乐.mp3 alias jpmusic"), NULL, 0, NULL);//mciSendString(TEXT("play jpmusic "), NULL, 0, NULL);////}//void background___musicss() {//死亡音乐////mciSendString(TEXT("open E:\\贪吃蛇\\素材\\死亡.mp3 alias jpmusic"), NULL, 0, NULL);////mciSendString(TEXT("play jpmusic"), NULL, 0, NULL);//}//void background_picturezhu() {//主界面图片////initgraph(922, 481);//IMAGE img_bk;//loadimage(&img_bk, _T("F:\\素材\\图片.jpg"));//putimage(0, 0, &img_bk); // 在坐标(0 , 0 )位置显示IMAGE 对象//_getch();//closegraph();////}void all_date(struct Snake* snake, struct Foodxy* food) {fen = 10 * snake->food_count + (400 - snake->speed) / 10;gotoxy(80, 5);printf("level : %d", snake->food_count / 5 + 1); //打印游戏等级gotoxy(80, 8);printf("score : %d", fen + earn); //打印游戏得分//分数=10*snake+(300-speed)/10gotoxy(80, 11);printf("eat food : %d", snake->food_count); //打印产生食物个数gotoxy(80, 14);printf("speed : %03dms", snake->speed); //打印游戏速度gotoxy(80, 17);printf("foodX : %d", food->x);//打印食物的横坐标gotoxy(80, 20);printf("foodY : %d", food->y);//打印食物的竖坐标//printf("x: %d y: %d", snake->x[snake->snake_length - 1], snake->y[snake->snake_length - 1]+1000);}void move_snake(struct Snake* snake) {//蛇的移动gotoxy(snake->x[0], snake->y[0]);printf(" "); /* 清除蛇尾*/for (i = 1; i < snake->snake_length; i++) {/* 后一节的坐标依次取代前一节的坐标 */snake->x[i - 1] = snake->x[i];snake->y[i - 1] = snake->y[i];}}//产生食物void get_food(struct Snake* snake, struct Foodxy* food) {srand((unsigned)time(NULL)); //初始化随机数while (1) {/* 产生食物的条件:1.在游戏窗口内 2.不在蛇的身上 */food->x = rand() % 56;//得到食物的横坐标food->y = rand() % 24; //得到食物的竖坐标if (food->x <= 13 || food->y <= 5 || (food->x == tan_x && food->y == tan_y)) {//越界跳过continue;}if (snake->x[snake->snake_length - 1] % 2 != food->x % 2)continue;/******/for (i = 0; i < snake->snake_length; i++) {/* 判断食物是否在蛇的身上,如果在蛇身上,则重新产生;否则,打印蛇身 */if (food->x == snake->x[i] && food->y == snake->y[i]) {break;}}if (i == snake->snake_length) {xx = food->x;yy = food->y;gotoxy(food->x, food->y);setColor(15);printf("●");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//字体颜色break;}}}void get_tanchi(struct Snake* snake, struct Foodxy* food) {srand((unsigned)time(NULL)); //初始化随机数while (1) {/* 产生食物的条件:1.在游戏窗口内 2.不在蛇的身上 */tan_x = rand() % 56 - 2;//得到食物的横坐标tan_y = rand() % 24 - 1; //得到食物的竖坐标if (tan_x <= 13 || tan_y <= 5 || (food->x == tan_x && food->y == tan_y)) {//越界跳过continue;}if (snake->x[snake->snake_length - 1] % 2 != tan_x % 2)continue;/******/for (i = 0; i < snake->snake_length; i++) {/* 判断食物是否在蛇的身上,如果在蛇身上,则重新产生;否则,打印蛇身 */if (tan_x == snake->x[i] && tan_y == snake->y[i]) {break;}}if (i == snake->snake_length) {gotoxy(tan_x, tan_y);setColor(6);printf("★");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//字体颜色break;}}}void print_snake(struct Snake* snake) {//打印蛇for (i = 0; i < snake->snake_length; i++) {gotoxy(snake->x[i], snake->y[i]);if (i == 0) {//setColor(2);printf("○");//■ //打印蛇尾} else if (i == snake->snake_length - 1) {//setColor(i % 16);printf("¤");//■ //打印蛇头} else {//setColor(i % 16);printf("⊙"); //■//打印蛇身}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//字体颜色}}//吃加成void eat_tan(struct Snake* snake, struct Foodxy* food) {if (snake->x[snake->snake_length - 1] == tan_x && snake->y[snake->snake_length - 1] == tan_y) {//贪吃食物的加成get_tanchi(snake, food);earn += 20;//加20分。}}//吃食物void eat_food(struct Snake* snake, struct Foodxy* food) {if (snake->x[snake->snake_length - 1] == food->x && snake->y[snake->snake_length - 1] == food->y) {/* 如果蛇头位置与食物位置相同,吃食物 */snake->snake_length++;//吃一个食物,蛇身增长一节for (i = snake->snake_length - 1; i >= 1; i--) {/* 蛇后节坐标依次赋值给蛇前一节的坐标,依次得到蛇身及蛇头的坐标 */snake->x[i] = snake->x[i - 1];snake->y[i] = snake->y[i - 1];}snake->x[0] = a[0];//得到蛇尾移动前的横坐标snake->y[0] = a[1];//得到蛇尾移动前的竖坐标get_food(snake, food); //重新产生食物snake->food_count++; //食物的个数增1if (snake->food_count % 1 == 0) {/* 当蛇吃1个食物时,速度加快10毫秒 */if (snake->speed <= 30)snake->speed -= 3;else if (snake->speed <= 60)snake->speed -= 5;else snake->speed -= 10;}}}void update(struct Snake* snake) {//数据初始化snake->x[0] = 30 + 2;//初始化蛇的横坐标snake->y[0] = 9 + 10 / 2; //初始化蛇的竖坐标snake->speed = ppppp;//初始化蛇的速度为pppppsnake->snake_length = 3;//初始化蛇的长度为3节//snake->food_count = 0; //初始化蛇吃的个数为0fen = 0;earn = 0;for (i = 1; i < snake->snake_length; i++) {/* 依次得到蛇身、蛇头的坐标 */snake->x[i] = snake->x[i - 1] + 2;snake->y[i] = snake->y[i - 1];}}//穿墙void through_wall(struct Snake* snake, char ch) {if (ch == 119 && snake->y[snake->snake_length - 1] == RangeY - 2) {snake->y[snake->snake_length - 1] = RangeY + Range_hight - 3; //如果蛇在上框且向上移动,穿墙}if (ch == 115 && snake->y[snake->snake_length - 1] == RangeY + Range_hight - 2) {snake->y[snake->snake_length - 1] = RangeY - 1; //如果蛇在下框且向下移动,穿墙}if (ch == 97 && snake->x[snake->snake_length - 1] < RangeX + 7) {snake->x[snake->snake_length - 1] = RangeX + 2 * Range_width + 10; //如果蛇在左框且向左移动,穿墙}if (ch == 100 && snake->x[snake->snake_length - 1] > RangeX + Range_width + 30) {snake->x[snake->snake_length - 1] = 14; //如果蛇在右框且向右移动,穿墙}}//判断蛇是否死int if_die(struct Snake* snake) {/* 当蛇头碰到自身时,蛇死 ,返回值为0 */for (i = 0; i < snake->snake_length - 1; i++) {if (snake->x[snake->snake_length - 1] == snake->x[i] && snake->y[snake->snake_length - 1] == snake->y[i]) {return 0;}}return 1;}void show() {//打印边界gotoxy(12, 4);printf("╔");gotoxy(58, 4);printf("╗");gotoxy(12, 24);printf("╚");gotoxy(58, 24);printf("╝");for (int i = 13; i < 58; i++) {//上Sleep(15);gotoxy(i, 4);printf("═");gotoxy(i, 24);printf("═");//═}/*for (int i = 14; i < 58; i++) {//下gotoxy(i, 24);printf("-");//═}*/for (int i = 5; i < 24; i++) {Sleep(15);gotoxy(12, i);printf("║");gotoxy(58, i);printf("║");}/*for (int i = 5; i < 24; i++) {//Sleep(50);gotoxy(58, i);printf("║");}*/}void jixushow() {//打印边界gotoxy(12, 4);printf("╔");gotoxy(58, 4);printf("╗");gotoxy(12, 24);printf("╚");gotoxy(58, 24);printf("╝");for (int i = 13; i < 58; i++) {//上gotoxy(i, 4);printf("═");gotoxy(i, 24);printf("═");//═}/*for (int i = 14; i < 58; i++) {//下gotoxy(i, 24);printf("-");//═}*/for (int i = 5; i < 24; i++) {gotoxy(12, i);printf("║");gotoxy(58, i);printf("║");}/*for (int i = 5; i < 24; i++) {//Sleep(50);gotoxy(58, i);printf("║");}*/}void print_Snake() {//绘制字符画 --蛇//background_picturezhu();//背景图片system("cls");//清屏SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//字体颜色gotoxy(40, 1);Sleep(950);setColor(6);printf("/^\\/^\\");//蛇眼睛Sleep(50);gotoxy(39, 2);printf("|_O| O|");//蛇眼睛Sleep(50);gotoxy(38, 2);setColor(2);printf("_");Sleep(50);gotoxy(30, 3);setColor(2);printf("\\/");//蛇信Sleep(50);gotoxy(36, 3);setColor(2);printf("/");Sleep(50);gotoxy(42, 3);setColor(6);printf(" \\_/");//蛇眼睛Sleep(50);gotoxy(46, 3);setColor(10);printf(" \\");Sleep(50);gotoxy(31, 4);setColor(12);printf("\\____"); //舌头Sleep(50);gotoxy(37, 4);printf("_________/");Sleep(50);gotoxy(36, 4);setColor(2);printf("|");Sleep(50);gotoxy(48, 4);setColor(10);printf("\\");Sleep(50);gotoxy(37, 5);setColor(2);printf("\\_______"); //蛇嘴Sleep(50);gotoxy(49, 5);setColor(6);printf("\\");Sleep(50);gotoxy(44, 6);printf("|| \\"); //下面都是画蛇身Sleep(50);gotoxy(43, 7);printf("// \\");Sleep(50);gotoxy(42, 8);printf("//\\ \\");Sleep(50);gotoxy(40, 9);printf("// \\ \\");Sleep(50);gotoxy(39, 10);printf("//\\ \\");Sleep(50);gotoxy(38, 11);printf("// _----_ \\ \\");Sleep(50);gotoxy(37, 12);printf("// _-~~-_ | |");Sleep(50);gotoxy(36, 13);printf("(( _-~ _--_ ~-__/ |");Sleep(50);gotoxy(37, 14);printf("\\~-____-~ _-~ ~-_ ~-_-~ /");Sleep(50);gotoxy(38, 15);printf("~-_ _-~~-_ _-~");Sleep(50);gotoxy(40, 16);printf("~--______-~~-___-~");Sleep(1000);}void start_game() {system("cls");char ch = 100;char CH = 100;struct Snake s, * snake = &s;//定义蛇的结构体指针并指向蛇 的结构体struct Foodxy f, * foodxy = &f;show();//游戏范围update(snake);//数据初始化get_tanchi(snake, foodxy);//贪心食物随机生成。get_food(snake, foodxy);//食物的随机生成ff = 0;int suiji = 0;while (1) {suiji++;all_date(snake, foodxy);a[0] = snake->x[0]; //记住蛇尾的横坐标a[1] = snake->y[0]; //记住蛇尾的竖坐标j = 0;if (_kbhit()) {/* 判断是否按下键盘,如果按下,ch接收键盘输入 */ch = _getch();if (_kbhit()) {/* 如果快速按键盘,则加速 */Sleep(20);j = 1;}}//gotoxy(80, 22);//printf("%d %d", abs(tan_x-snake->x[snake->snake_length - 1]), abs(tan_y-snake->y[snake->snake_length - 1]));if (abs(tan_x - snake->x[snake->snake_length - 1]) <= 8 && abs(tan_y - snake->y[snake->snake_length - 1]) <= 5) {//gotoxy(80, 22);//printf("%d %d", snake->x[snake->snake_length - 1], snake->y[snake->snake_length - 1]);int tttttt;tttttt = rand() % 10;if (tttttt >= 5) {gotoxy(tan_x, tan_y);printf(" ");get_tanchi(snake, foodxy);}}switch (ch) {case 119: {/* 向上移动 */CH = 119;move_snake(snake); //移动蛇snake->y[snake->snake_length - 1] -= 1; //蛇头的竖坐标向上移,即减1break;}case 115: {/* 向下移动 */CH = 115;move_snake(snake); //移动蛇snake->y[snake->snake_length - 1] += 1; //蛇头的竖坐标向下移,即加1break;}case 97: {/* 向左移动 */CH = 97;move_snake(snake); //移动蛇snake->x[snake->snake_length - 1] -= 2; //蛇头的横坐标向左移,即减2break;}case 100: {/* 向右移动 */CH = 100;move_snake(snake); //移动蛇snake->x[snake->snake_length - 1] += 2; //蛇头的横坐标向右移,即加2break;}case 32: {pause_game();break;}default: {ch = CH;switch (ch) {case 119: {/* 向上移动 */CH = 119;move_snake(snake); //移动蛇snake->y[snake->snake_length - 1] -= 1; //蛇头的竖坐标向上移,即减1break;}case 115: {/* 向下移动 */CH = 115;move_snake(snake); //移动蛇snake->y[snake->snake_length - 1] += 1; //蛇头的竖坐标向下移,即加1break;}case 97: {/* 向左移动 */CH = 97;move_snake(snake); //移动蛇snake->x[snake->snake_length - 1] -= 2; //蛇头的横坐标向左移,即减2break;}case 100: {/* 向右移动 */CH = 100;move_snake(snake); //移动蛇snake->x[snake->snake_length - 1] += 2; //蛇头的横坐标向右移,即加2break;}}break;}}if (ff == 2)break;if (ff == 3)exit(0);if (ff == 1) {jixushow();gotoxy(xx, yy);setColor(15);printf("●");gotoxy(tan_x, tan_y);setColor(6);printf("★");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//字体颜色ch = CH;ff = 0;}through_wall(snake, ch); //穿墙eat_tan(snake, foodxy); //吃加成eat_food(snake, foodxy);//吃食物print_snake(snake); //打印蛇if (if_die(snake) == 0) {/* 游戏结束条件:蛇碰到自身 *///mciSendString(TEXT("close jpmusic"), NULL, 0, NULL);//当前音乐关闭//background___musicss();//死亡音乐gotoxy(33, 14);printf("Game Over");Sleep(2000);game_over();system("cls");//mciSendString(TEXT("close jpmusic"), NULL, 0, NULL);//当前音乐关闭//background_musicss();//背景音乐mainmenu();break;}if (j == 0) {Sleep(snake->speed);//延迟时间} else {Sleep(10);}}if (ff == 2)mainmenu();}void Game_difficulty() {system("cls");gotoxy(48, 10);printf("难 度 选 择");gotoxy(50, 12);printf("1.我就玩玩");gotoxy(50, 14);printf("2.再快一点?");gotoxy(50, 16);printf("3.飞的感觉");gotoxy(86, 29);printf("请在输入法英文状态下开始游戏");gotoxy(0, 29);printf("你的选择:");char n;cin >> n;switch (n) {case '1':system("cls");ppppp = 400;break;case '2':system("cls");ppppp = 200;break;case '3':system("cls");ppppp = 100;break;default:system("cls");Game_difficulty();break;}}void point_rang() {qqqq[1] = "Winner";//qqqq[2] = "2nd";//qqqq[3] = "3rd";//qqqq[4] = "4th";//qqqq[5] = "5th";//qqqq[6] = "6th";//qqqq[7] = "7th";//qqqq[8] = "8th";//qqqq[9] = "9th";//qqqq[10] = "10th";char aba[15][15] = {{" "},{"Winner"},{"2nd"},{"3rd"},{"4th"},{"5th"},{"6th"},{"7th"},{"8th"},{"9th"},{"10th"} };int i, j, k, l;system("cls");gotoxy(44, 2);printf("积 分 排 名 如 下:(前10)\n\n");gotoxy(33, 6);cout << "Ranking";gotoxy(50, 6);cout << " Name" << "" << "Score";aa.clear();ifstream in("数据.txt");if(in) {int tt;in >> tt;for (int i = 0; i < tt; i++) {int fenn;string ss;in >> ss >> fenn;aa.push_back(make_pair(ss, fenn));}in.close();}else{ofstream outstuf;outstuf.open("数据.txt");ofstream out("数据.txt");out<<0<<endl;out.close();}sort(aa.begin(), aa.end(), cmp);j = 8;int ii = 1;if (aa.size() == 0) {gotoxy(44, 15);setColor(4);printf("目前无人在榜,赶快上榜吧!!!");}for (auto& i : aa) {if (ii == 1)setColor(4);//积分排名颜色渐变else if (ii > 1 && ii <= 4)setColor(6);else if (ii > 4 && ii <= 7)setColor(14);else setColor(7);if (qqqq[ii] == "Winner") {gotoxy(37 - qqqq[ii].size() / 2, j);//居中cout << aba[ii++];} else {gotoxy(36 - qqqq[ii].size() / 2, j);//居中cout << aba[ii++];}gotoxy(55 - i.first.size() / 2, j);//居中cout << i.first;gotoxy(75 - (int)log10(i.second) / 2, j);//居中cout << i.second;j += 2;if (ii > 10)break;}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//颜色归位gotoxy(0, 29);printf("任意键返回:");/*int m;scanf("%d",&m);switch(m) {case 1:system("cls");mainmenu();break;}*/char input;while (1) {if (_kbhit()) {system("cls");input = _getch();mainmenu();break;}}}void help() {system("cls");//清屏gotoxy(50, 4);printf("利用键盘控制小蛇的移动\n");gotoxy(49, 6);printf("通过吃到食物获得积分加成\n");gotoxy(53, 8);printf("附带提速效果\n");gotoxy(35, 10);printf("蛇在移动中只有碰到自己才会死亡,碰到墙壁会穿过继续进行");gotoxy(55, 12);printf("w上");gotoxy(55, 14);printf("a左");gotoxy(55, 16);printf("s下");gotoxy(55, 18);printf("d右");gotoxy(53, 20);printf("space 暂停");gotoxy(86, 29);printf("请在输入法英文状态下开始游戏");gotoxy(0, 29);printf("任意键返回:");char input;while (1) {if (_kbhit()) {system("cls");input = _getch();mainmenu();break;}}}void About_games() {system("cls");gotoxy(10, 3);printf("开发成员:");gotoxy(17, 5);printf("---------------------------------");gotoxy(17, 7);printf("-----------------------------");gotoxy(17, 9);printf("--------------------------------");gotoxy(55, 2);printf("4.26更新:游戏框架成型");gotoxy(55, 4);printf("5.31更新:加入核心代码");gotoxy(55, 6);printf("6.1更新:优化蛇穿墙的各种参数");gotoxy(55, 8);printf("6.3更新:优化食物随机出现的坐标,使蛇可以精确吃到食物");gotoxy(55, 10);printf("6.4更新:优化暂停过程中的无法再次调用函数的错误");gotoxy(55, 12);printf("6.4更新:增加积分排名的颜色变换并对蛇的速度进行优化");gotoxy(55, 14);printf("6.5更新:加入加成食物,加入蛇死亡音效");gotoxy(55, 16);printf("6.6更新:调整加成食物被吃几率,更加符合贪吃的定义");gotoxy(55, 18);printf("6.8更新:微调主页面内容位置,使其居中");gotoxy(55, 20);printf("6.9更新:调整只有空格会暂停其他的不会");gotoxy(55, 22);printf("6.23更新:自动创建本地txt");int m;gotoxy(0, 29);printf("任意键返回:");char input;while (1) {if (_kbhit()) {system("cls");input = _getch();mainmenu();break;}}}void pause_game() {//游戏暂停system("cls");gotoxy(50, 10);printf("1.继续游戏");gotoxy(50, 14);printf("2.返回主页面");gotoxy(50, 18);printf("3.退出游戏");gotoxy(0, 29);printf("你的选择:");char n;cin >> n;switch (n) {case '1':system("cls");ff = 1;//start_game();break;case '2':system("cls");ff = 2;mainmenu();break;case '3':system("cls");ff = 3;break;}}void game_over() {aa.clear();system("cls");gotoxy(50, 10);printf("很遗憾,游戏结束");gotoxy(20, 18);printf("您的得分是 :%d 分", fen + earn);gotoxy(20, 20);printf("请输入您的英文名字 ");string s;cin >> s;int tt;aa.push_back(make_pair(s, fen + earn));ifstream in("数据.txt");if(in) {in >> tt;for (int i = 0; i < tt; i++) {int fenn;string ss;in >> ss >> fenn;if (ss.size() == 0)continue;aa.push_back(make_pair(ss, fenn));}in.close();ofstream out("数据.txt");//sort(aa.begin(), aa.end(), cmp);out << tt + 1 << endl;for (auto& i : aa) {out << i.first;out << " ";out << i.second << endl;}/*for (int i = 0; i < 10; i++) {out << i << endl;}*/out.close();}else{ofstream outstuf; outstuf.open("数据.txt");ofstream out("数据.txt");out<<1<<endl;out<<s<<" "<<fen+earn<<endl;out.close();}}void mainmenu() {////开始界面system("cls");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |FOREGROUND_BLUE);//字体颜色gotoxy(48, 7);printf("贪 吃 蛇");Sleep(100);gotoxy(53, 10);printf("1.开始游戏");Sleep(100);gotoxy(53, 12);printf("2.游戏帮助");Sleep(100);gotoxy(53, 14);printf("3.关于游戏");Sleep(100);gotoxy(53, 16);printf("4.积分排名");Sleep(100);gotoxy(53, 18);printf("5.退出游戏");Sleep(100);gotoxy(0, 29);printf("你的选择:");char n;cin >> n;switch (n) {case '1':Game_difficulty();start_game();break;case '2':help();////帮助界面break;case '3':About_games();break;case '4':point_rang();////积分排名系统break;case '5':myPause(2);//延时2秒退出break;default:system("cls");mainmenu();break;}}void myPause(int tn) {//延时关闭system("cls");gotoxy(50, 14);printf("感谢您的使用");gotoxy(0, 29);{int t0 = time(NULL), last = t0, now = t0;tn += t0;int n = -2;gotoxy(n += 2, 29);cout << (tn - now);while ((now = time(NULL)) < tn)if (last != now) {gotoxy(n += 2, 29);cout << (tn - now);last = now;}}exit(0);}int main() {system("mode con cols=115 lines=30 ");//窗口大小//background_musicss();//背景音乐print_Snake();mainmenu();return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。