初学者的C语言智能蛇例解

具体代码在我的另一篇文章中,有兴趣可以去翻一下。下面写的是打出一条可以自己走的蛇需要哪几方面的能力。然后再分别去实现它。

可视性问题

因为C语言本来就并不擅长游戏开发方面,因此有些基础的实现还是要想办法的。
要用C编写一个游戏代码首先要解决怎么让玩家可以清楚地看到游戏内容。我们可以用“延时”和“刷屏”来解决它。

1.刷屏

因为你需要让输出的下一帧出现在原来的位置并覆盖掉它的上一帧输出,才能显现出如电影播放般的效果来。才会使输出界面像是一个游戏界面。
为了实现它,我们可以调用system()函数。具体了解它可以点击下方链接:
system函数
这里是一段小程序:

#include<stdio.h>
#include<stdlib.h>
int main(void) {
	puts("It's his function.");
	system("pause");            //这条语句只是为了让程序在这里暂停直到你按下return,你也可以用一个断点来代替这条语句。
	system("cls");              //这便是刷屏的实现,"cls"是一个DOS命令,就是刷屏的意思,用时要包含<stdlib.h>头文件。
	puts("Now you found that the former output has disppeared.");
	return 0;
}

2.延时

如果仅仅去掉上面代码中的(system(“pause”);)语句再运行会发生什么?前一条输出一闪而过,根本看不清写了什么。这是因为在代码比较简单时,计算机处理两次输出所间隔的时间并不会很长。导致你根本没看清上一次输出就被刷掉了。因此你需要让游戏画面每帧的间隔更长些。这时你需要调用另一个函数来实现它。那就是
Sleep函数
下面给出上面代码的“升级版”:

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
int main(void) {
	puts("It's his function.");
	Sleep(1000);                //调用的参数是你想要程序挂起来的时长(毫秒作单位),这里相当于程序执行到这里暂停了1s。
	system("cls");
	puts("Now you found that the former output has disppeared.");
	return 0;
}

需要实现的对象

1.边界

这个边界需要有这几个特点:

  • 是一个封闭的图形(最初定成一个方形将是个不错的选择)
  • 不会改变自己的位置
  • 蛇不能穿过它

当然并不是说一定要这样,因为游戏的创新就是要通过改变这些规则来增强趣味性。
###2.蛇
属性:

  • 蛇身
  • 蛇头
    行为:
  • 移动
  • 吃经验
  • 判断下一步方向并转动

  • 蛇身和蛇头应该有所区别,蛇头每移动一格,蛇身每一节都要跟着上一节移一格。吃到一个经验的话,蛇身会多出一节来。而最重要的是蛇应该可以判断那几个方向是可以转的,并从中随机选择一个方向移动。

3.经验

随机出现在边界以内(这需要调用随机数函数来实现),直到蛇吃掉它才会消失并在另一个空白区域(不被蛇占据)出现。


具体实现还是对照看我另一篇博客中的代码吧,还是懒得写下去了,别太在意。。。。

不过上面实现对象的介绍其实是C++的一种表现形式,特点是你可以用任何语言去实现上面的各个对象。因为介绍中没有涉及到任何语言的特征。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值