当前位置: 首页 > news >正文

做哪类视频网站需要视频牌照灵宝seo公司

做哪类视频网站需要视频牌照,灵宝seo公司,福州seo关键词排名,北京最新疫情公布一、前言 [设计难度 : ★☆☆☆☆ [参考书籍:《C语言课程设计与游戏开发实践教程》 [主要涉及知识:函数封装 循环判断语句 [程序运行效果图: [主要的游戏功能: 通过按键’w’,‘s’,‘a’,d’分别实现飞机的上下左右移动 按空格…

一、前言
[设计难度 : ★☆☆☆☆
[参考书籍:《C语言课程设计与游戏开发实践教程》
[主要涉及知识:函数封装 + 循环判断语句
[程序运行效果图:


[主要的游戏功能:

通过按键’w’,‘s’,‘a’,'d’分别实现飞机的上下左右移动
按空格键发射子弹
按ESC实现游戏暂停
按q键返回菜单界面
实现子弹和敌机位置的自动更新
敌机的生成速度和下落速度随分数的增加而变快
实时打印得分和生命值。生命值为0时游戏结束
以下为飞机游戏全部的代码,大家可以直接拷贝运行:
 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <time.h>#define height 25   //设置游戏边界
#define width 50
#define enemy_max 5enum Option			//枚举增加代码可读性
{EXIT,PLAY,GUIDE,
};enum Condition      //表示游戏幕布上的情况
{backspace,enemy,bullet,
};int canvas[height][width]; //游戏幕布存储对应的信息
int score;
int x, y;				   //飞机头部坐标
int Std_Speed;		       //敌机标准下落速度
int Std_Time;		       //敌机生成的标准速度
int HP;                    //玩家生命值
int enemy_num;
int times;void gotoxy(int x, int y)				//清屏函数
{HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);COORD pos;pos.X = x;pos.Y = y;SetConsoleCursorPosition(handle, pos);
}void HideCursor()					   //光标隐藏函数
{CONSOLE_CURSOR_INFO cursor_info = { 1, 0 };SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}void Initgame()
{for (int i = 0; i < height; i++){for (int j = 0; j < width; j++)		//将幕布上先初始化为空格canvas[i][j] = backspace;}HP = 3;score = 0;x = width / 2;							//初始化飞机位置y = height / 2;enemy_num = 0;Std_Speed = 60;Std_Time = 60;
}void show()
{gotoxy(0, 0);for (int i = 0; i < height; i++){for (int j = 0; j < width; j++){if (i == y && j == x)			//打印飞机printf("*");else if (i == y + 1 && j == x - 2){printf("*****");j += 4;}else if (i == y + 2 && j == x - 1){printf("* *");j += 2;}else if (canvas[i][j] == bullet)	// 打印子弹printf("|");else if (canvas[i][j] == enemy)printf("@");elseprintf(" ");}printf("|\n");	//打印游戏边框}for (int j = 0; j < width; j++)   //打印游戏边框printf("-");printf("\n[得分:>%d\n", score);	  //打印游戏分数和血量printf("[生命值:>%d\n", HP);
}int updateWithinput()
{if (_kbhit()){int input = _getch();switch (input){case 'w': if (y > 0)			//防止飞机飞出游戏边界y--;break;case 's': if (y < height - 3)y++;break;case 'a': if (x > 2)x--;break;case 'd': if (x < width - 3)x++;break;case 27: system("pause"); break;	//ESC的ascll码值为27case ' ': if (y > 0)canvas[y - 1][x] = bullet;break;case 'q': return 1;					//退出游戏}}return 0;
}int enemy_update()
{static int enemy_speed = 0;static int enemy_time = 0;int flag = 0;if (enemy_speed < Std_Speed)				//依靠循环来控制更新速度enemy_speed++;if (enemy_time < Std_Time)enemy_time++;if (enemy_num < enemy_max && enemy_time >= Std_Time){int i, j;do{i = rand() % (height / 5);j = rand() % (width - 4) + 2;		//j的范围:[2, width - 3]} while (canvas[i][j] != backspace);canvas[i][j] = enemy;enemy_num++;enemy_time = 0;}if (enemy_speed >= Std_Speed){flag = 1;enemy_speed = 0;}for (int i = height - 1; i >= 0; i--){for (int j = width - 1; j >= 0; j--){if (canvas[i][j] == enemy)			//遇到敌机的情况{if (i == height - 1)			//敌机飞到边界{score--;HP--;if (HP == 0)return 1;enemy_num--;canvas[i][j] = backspace;}else if (i < height - 1 && canvas[i + 1][j] == bullet)//检测是否被子弹击中{score++;printf("\a");enemy_num--;if (score % 5 == 0 && Std_Speed >= 12) //分数到达一定程度后下落加快,生成加快{Std_Speed -= 3;			//下落加快Std_Time -= 3;			//生成速度加快}canvas[i][j] = backspace;}else if (flag)					//flag为1更新敌机位置{canvas[i + 1][j] = enemy;canvas[i][j] = backspace;}}}}return 0;
}void bullet_update()
{for (int i = 0; i < height; i++)			//控制子弹的移动{for (int j = 0; j < width; j++){if (canvas[i][j] == bullet){if (i > 0 && canvas[i - 1][j] == enemy){score++;printf("\a");enemy_num--;if (score % 5 == 0 && Std_Speed >= 6) //分数到达一定程度后下落加快,生成加快{Std_Speed -= 3;			//下落加快Std_Time -= 3;			//生成速度加快}canvas[i - 1][j] = bullet;}else if (i > 0)canvas[i - 1][j] = bullet;canvas[i][j] = backspace;}}}
}void gamebody()
{system("cls");Initgame();HideCursor();srand((unsigned int)time(NULL));while (1){show();bullet_update();if (updateWithinput() || enemy_update()){show();printf("[本次游戏结束:>");system("pause");break;}}
}void menu()
{printf("*****************\n");printf("**  飞机游戏   **\n");printf("**-------------**\n");printf("**   1.PLAY    **\n");printf("**   2.GUIDE   **\n");printf("**   0.EXIT    **\n");printf("*****************\n");
}void guide()
{printf("******************\n");printf("** 游戏操作指南 **\n");printf("**--------------**\n");printf("**    w->上移   **\n");printf("**    s->下移   **\n");printf("**    a->左移   **\n");printf("**    d->右移   **\n");printf("**    q->返回   **\n");printf("**   ESC->暂停  **\n");printf("**   空格->射击 **\n");printf("******************\n\n\n");}int main()
{int input = 0;do{menu();printf("[请选择:>");scanf("%d", &input);switch (input){case PLAY: gamebody(); break;case GUIDE: guide(); break;case EXIT: printf("成功退出游戏!\n"); break;default: printf("输入错误,请重新选择\n");}} while (input);return 0;
}

如果觉得还挺有意思的,那就继续保持着轻松的心情看下去吧!

二、从设计初始菜单界面开始

一个基本的游戏初始选择框架:

int main()
{int input = 0;do{menu();printf("[请选择:>");scanf("%d", &input);switch (input){case xxx:case xxx:case xxx:default: }}while (input);return 0;
}

我们根据游戏所包含的功能设计好相应的menu选项以及其对应的case事件即可。作为我们飞机游戏的第一个简单版本,我们先不考虑其他的模式和功能,仅包含PLAY(游戏)功能、GUIDE(操作说明)、EXIT(退出游戏)三种功能。根据这个思路,我们写下这样的menu函数

void menu()
{printf("*****************\n");printf("**  飞机游戏   **\n");printf("**-------------**\n");printf("**   1.PLAY    **\n");printf("**   2.GUIDE   **\n");printf("**   0.EXIT    **\n");printf("*****************\n");
}

为了增加代码的可读性,我们在头文件处创建枚举变量。

enum Option			//枚举增加代码可读性
{EXIT,           // printf("%d", EXIT);的结果为 0PLAY,			// printf("%d", PLAY);的结果为 1GUIDE,			// printf("%d", GUIDE);的结果为 2
};

每个枚举常量都是有值的,第一个枚举成员的值默认为0(不人为修改的话),之后的随前一个递增。这恰好与我们的menu中功能序号相对应,于是我们可以用枚举变量作为case的整形常量表达语句,最终写出的主函数是这样的:

int main()
{int input = 0;srand((unsigned int)time(NULL));  //初始化rand函数,只需要初始化一次即可,所以放在主函数内do{menu();printf("[请选择:>");scanf("%d", &input);switch (input){case PLAY: gamebody(); break;case GUIDE: guide(); break;case EXIT: printf("成功退出游戏!\n"); break;default: printf("输入错误,请重新选择\n");}}while (input);return 0;
}

http://www.mmbaike.com/news/107660.html

相关文章:

  • 优化推广网站淄博最佳搜索引擎磁力
  • 网站服务器如何做热备价怎么做网站广告
  • 中华人民共和国政府网官网长春seo快速排名
  • 我想找网站帮忙做宣传国外网站怎么推广
  • 缪斯设计公司广州网站排名专业乐云seo
  • 人才网站开发文档网站建设公司推荐
  • 网站建设公司浩森宇特制作网站建设入门
  • 芜湖营销网站建设网络整合营销是什么意思
  • 一个人可以建设网站吗免费b站网页推广
  • 用阿里云做网站whois查询
  • 专做日式新中式庭院的网站有哪些东莞seo技术培训
  • 做美食推广的网站有哪些上海搜索引擎优化seo
  • 网站建设包含以下哪些建设阶段品牌策划的五个步骤
  • 金水区网站建设百度推广免费
  • 摄影网站规划设计书郑州整站关键词搜索排名技术
  • 做孵化的网站电商运营自学全套教程
  • 校园在线网站怎么做今日头条普通版
  • 绘制网站结构图最新中高风险地区名单
  • 韩国网站加速器制作app软件平台
  • wordpress用户上传视频教程搜索引擎优化的主要工作
  • 温州做公众号和做网站的地方淄博网站seo
  • 深圳建站服务公司代发百度首页排名
  • 游戏类网站备案360浏览器网页版入口
  • 一站式企业服务平台是什么seo网站推广实例
  • 好创意设计大赛官网灵宝seo公司
  • 新开传奇网站刚开中国疫情今天最新消息
  • 免费做流程图的网站免费个人推广引流平台
  • 淄博网站开发招聘搜狗站长工具
  • .net做的网站打开速度缓慢关键词热度
  • 网站优化关键词网络营销方法