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

做纱线的网站百度点击软件还有用吗

做纱线的网站,百度点击软件还有用吗,哪有做企业网站,网线制作实验总结一、前言 [设计难度 : ★☆☆☆☆ [参考书籍:《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.yidumall.com/news/45735.html

相关文章:

  • 合肥seo网站优化网站域名费一年多少钱
  • 企业邮箱给我一个哈尔滨网络seo公司
  • 网站流量与广告费十大营销模式
  • wordpress博客案例苏州seo关键词排名
  • 做电气的什么招聘网站好怎么创造自己的网站
  • 南宁门户网站有哪些seo学途论坛网
  • 网站成品作业宁波优化关键词首页排名
  • 网站怎么做sem网站优化 推广
  • jsp动态网站开发基础教程与实验指导seo优化必备技巧
  • 奥地利网站后缀百度竞价托管公司
  • 查看网站服务器信息ciliba磁力搜索引擎
  • 舟山网站建设有哪些美国搜索引擎浏览器
  • 昆山城市建设投资有限公司网站软文写作是什么意思
  • 龙岩网站推广软件某企业网站的分析优化与推广
  • 做美篇发网站seo工作内容有哪些
  • 网站制作的评价长沙网站优化指导
  • 可信网站是否有规定必须做seo服务靠谱吗
  • 资阳网站建设百度关键词搜索排行
  • 武汉免费建站模板seo职业
  • 做女装批发哪个网站好今日最新国际新闻头条
  • 旅游网站制作百度云静态网站模板
  • 建设工程有限公司 网站网站设计公司北京
  • 网站优化哪家最专业google推广平台怎么做
  • 上海好的高端网站建设营销是什么
  • 如何查看网站做没做竞价百度官方官网
  • 用wordpress做企业网站视频教程给我免费播放片高清在线观看
  • wordpress搜站点网络中断百度广告安装入口
  • 武进网站建设价格自动推广引流app
  • 网站域名解析时间重庆网站seo建设哪家好
  • 郑州做网站制作的公司网页版百度