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

福建省建设安全监督站的网站订单拆单在电商网站建设

福建省建设安全监督站的网站,订单拆单在电商网站建设,wordpress 修改手机端,中国建设教育协会培训中心方法很简单,打开页面,复制,粘贴 一.整体思维架构 我们根据游戏的开始,运行,结束,将整个游戏划分成三个部分。在每个部分下面又划分出多个功能,接下来我们就根据模块一一实现功能。 二.Gamesta…

方法很简单,打开页面,复制,粘贴

一.整体思维架构

53bf3be904424253b41d16d68a9202f8.jpg

 我们根据游戏的开始,运行,结束,将整个游戏划分成三个部分。在每个部分下面又划分出多个功能,接下来我们就根据模块一一实现功能。

二.Gamestart

2.1设置窗口大小与窗口名字

由于游戏需要用到控制台窗口,所以我们需要使用一些win32API的相关知识。

首先我们需要调整窗口大小,这里用到了一个mode con的指令,以及给title进行命名,通过调用system来实现

c861712526704fa895ef26d271b9add5.png

 在使用system之前要加上头文件

bb4c857341ec4045a10d454b39fcadea.png

 2.2隐藏屏幕光标

2.2.1 GetStdHandle

GetStdHandle是Windows ApI函数,他用于从一个特定的标准设备(标准输入,标准输出,标准错误)中取得一个句柄,用这个句柄可以操作设备。

8816363624d748e48357769336c3e137.png

 我们通过一个houput指针来接收一份标准输出光标。

2.2.2 GetConsoleCursorInfo

GetConsoleCursorInfo是用来检索有关指定控制台屏幕缓冲区的光标大小和可见性信息。他的参数为一个bool类型。使用时,需要一份handle指针,以及一个相关结构体(包含控制台光标信息)。

cfbdbefcc31b4b7196e2b034ec70a75e.png

 2.2.3 CONSOLE_CURSOR_INFO

这是一个结构体,能够获取有关控制台光标的信息。包括dwSize光标填充的字符单元格的百分比,bVisinle游标的可见性。

ac5ed8d2d6c94cb08e8c29cc214261ad.png

 这里我们将其置为false,就可以隐藏光标。

2.2.4 SetConsoleCursorInfo

设置指定控制台屏幕缓冲区的光标大小和可见性。

6f13b897f07e4e8ca03f6a4ef925e691.png

 我们将指针与检索信息传给其,就能完成光标设置。

2.3 欢迎界面WelcomeToGame

在此之前我们需要制作一个坐标设置的函数。

COORD是Windows API中定义的一个结构体,表示一个字符在控制台屏幕上的坐标。

由此我们可以制作一个定位函数

773ffc24949c4fe4a8fdc837ae93904b.png

 输入x,y的坐标,将光标定位到该处。

我们根据这个函数,以及屏幕的大小,适当调整位置打印相关信息。

a02d5c8ab4164d04956c41482f45926a.png

 这里我们运用到了pause 和cls,使每打印完一次信息就清理屏幕打印下一句信息。

2.4创建地图CreatMap

首先我们定义一下墙体

dbdf847b659d41b8a3cf4abf12fcb6df.png

 为一个□,这个字符号可以在输入法内找到。接着我们开始输入墙体,从0.0开始,在控制台内输入要用到wprintf,输入则需要在类型前加上L。由于控制台的x坐标与y坐标大小不一样的原因,x坐标相较于y坐标的每个单位要小,所以我们的循环中,x坐标处我们每两个一打印。

7fa4d4faede14019ae66cebfb7661a40.png

 2.5创建蛇身InitSnake

2.5.1蛇身结点创建

这里我们用到一个结构体,蛇身需要xy坐标,以及下一个蛇身结点的地址。

40571c82733c425f9f57d7a66a603114.png

 2.5.2蛇的维护结构

一条蛇内要包含蛇头的指针,维护蛇食物的指针,蛇的初始方向,蛇的状态,得分情况,蛇的大小,每走一步需要休眠的时间。

1bfc155c97a54d8eb98b108f9b8d23ce.png

 我们用一个枚举结构体储存蛇的相关状态以及方向控制。

cb449b44f68a462ca684388fd10d5314.png

5dd053b13950417ebfda2eac53f3c876.png 

 2.5.3初始化蛇身

传递一个蛇身结点,初始化为cur。我们先初始化蛇身为5个结点,通过for循环一次malloc出一块空间,结点依次链接。将结点赋给_psnake。

8a061aef29e7462581490d9471e8d4fb.png

 之后我们需要将蛇身打印出来,并且初始化数据。

caad7ef93c4b46ca87e994793a079a6e.png

 2.6创建食物CreateFood

首先我们要保证食物要在地图内部,其次食物不能与蛇身重复。

我们将食物坐标设置为⭐

5eee59bc41a54d148aa8d2be7a0650e2.png

我们可以用x=rand%53+2,y=rand%25+1使得坐标在地图内部,while循环x%2!=0使x坐标恒为2的倍数。

6a83bc66000c4ecbb1930f62c7398ada.png

 完成上述判断后给食物进行初始化

022df84dd3b54c9ea9d9ea43962eeae1.png

 2.7总结Gamestart

cee1d15072b346988a9a2d7cd99a58d6.png

 三. GameRun

3.1右侧打印有效信息PrintHelpInfo

98a6b7f582cf4373816daa6fa64a3a95.png

 3.2 KEY_PRESS

这是一个宏,用于检测按键状态,若按键被按下则首位为1,否则则为0

ee41e748fcd54ab7aa9dee9f3ef2681e.png

 3.3主要设计思路

首先我们在右侧打印出游戏相应提示,用KEY_PRESS判断按键,来判断蛇的移动方向以及加速减速,游戏暂停等等。我们用一个do while循环来操作蛇的每一步,每走一步休眠一定时间,直到游戏结束为止。

7c90e7f0b72c407e87a35e27ddac08ec.png

b87098acf5de4c149171a1b8a9fbc1e6.png 

 我们通过控制sleep和weight来实现加速和减速效果。

3.4 蛇的移动SnakeMove

蛇的移动首先要满足不能和原先方向相反移动。蛇头向前走,蛇尾销毁结点。以及蛇的状态,是吃食物,撞墙,自杀。

3.4.1上下左右移动

通过判断按键是否按下,用Switch来进行循环判断,注意x坐标每次移动2个单位。

eb100f8bcbdd4cfda69b2fb4762e7952.png

 3.4.2判断是否有食物

若下一个结点有食物,就将食物与蛇结点相连接,随后打印出整条蛇,改变相应的分数,最后销毁的食物空间,创建一个新的食物。

32be51fb938348ffb2004f8a0f3db2e8.png

 若不是食物,则创建一个新结点放在蛇头出,并与蛇连接,销毁最后一个蛇结点。

5137bc04c76146b5ba71d87efc5fc27d.png

 3.4.3撞墙或自杀

6d75ada302a745bea4a30dd8516c2b60.png

 3.5总结GameRun

756bdc569f7c44678ef02de33f7ddbe6.png

32a6d6e57cae44168c0c2c0a358c5e8c.png 

 四. GameEnd

4.1主要思路

告知死亡原因,并且释放所有结点。

4.2代码实现

6fa505fa697a4cc0a5353ed2dfba0dc9.png

 五.完整代码

5.1 test.c

7425dd7797434efe9b8d3fda7ed48037.png

 5.2 Snake.c

13cb1c345c324cb6a0a63a3f18cb67d9.png deb39b1ca437495fa99cee71fd7e0155.png

ebf1b66c70d947c8a0dd24210319cc7b.png

32590132b224400bb0a672ebb8caa599.png 

fe4862660e8244299105a13f33938140.png 

cf0e67004ba243878c493e9325e7b944.png 

6065636c384d4b2bb6cd26802a74e22f.png 

579ce56792564171b8350194de70b93b.png 

a21e71c69b274cd2b9031eaa6c4bd7c9.png 

a90169002d5145d9abd82ad3129db1d5.png 

4f3e11e6b45c4891b99133c5b41a1c24.png 

09c59871795d404db8d81c6a0c715917.png 

ed31e0071b044fbabc23669963de9ac6.png 

 5.3 Snake.h

7760f8d3e44548cd9315b150a2eb7396.png

f37f6b02f4e94ac8b22cb3357e09e99c.png 

1490e1ce662344db8337e0f85eb0d92b.png 

 

http://www.yayakq.cn/news/921355/

相关文章:

  • 网站做的比较好的公司吗机械网站开发方案
  • c 网站开发调试婚礼案例网站
  • 如何给自己的公司建网站网站模板 金融
  • 网站备案是备什么鸿兴网站建设公司
  • 建站之星凡客网站开发项目有哪些
  • 茶叶价格网站建设江门网站设计
  • 注册公司去哪里注册东莞关键词排名优化
  • 网站开发 演讲怎么样申请网站域名
  • 网站备案logo做网站要的带宽是什么
  • 公司营销型网站建设策划书岭南地区网站建设
  • 坪山住房和建设局网站凡科建站好用吗
  • 网站敏感词汇广州网络公司排名
  • 个人做网站郊游的英临沭有做网站的吗
  • 企业网站开发外包余干县建设局网站
  • 国外网站 国内访问速度泉州网站建设学徒招聘
  • 网站调用视频公司门户网站制作需要多少钱
  • 做网站需要交钱吗网站备案前置审批 成都
  • 昌做网站济宁有做企业网站吗
  • 蔚县网站建设招远网站
  • 山东企业网站建设域名一个注册要多久
  • 手机网站 免费 html硬件开发工具
  • 网站广东省备案系统做网站用到的单词
  • 爱站工具下载网址信息查询
  • 新网站seo优化网站 谁建设谁负责
  • 网站建设刂搜金手指下拉贰肆网站开发 如何备案
  • 论坛建站哪个比较好拼多多网页设计尺寸
  • 宁波网站建设熊掌号北京网站制作收费明细
  • 石嘴山市建设局网站小企业网站建设论文
  • 如何更快的让百度收录网站成都商铺装修设计公司
  • 婚恋网站 备案条件如何制作app软件下载