`

贪吃蛇代码分析

阅读更多
上午在csdn看到一关于贪吃蛇的代码,下载下来看了一番,网址
http://download.csdn.net/detail/ldj12321/4656917

暑假有段时间很是无聊,也想琢磨一下贪吃蛇的实现来着,考虑了一个上午就不了了之。当时的难点主要是在如何利用键盘来控制输入的小蛇的移动方向,当时的思路是把数据放在一个数组里边,供程序读取。想了一段时间,找不到合适的方式来实现。今天看了以下代码,的确学习到了。

首先是windows头文件提供了_kbhit()函数来确定是否有键盘输入,有键盘输入函数返回1,否则返回0。其次是光标在控制台的移动,以前在群里听到过TD下用gotoxy()函数实现。看今天的代码是利用在vc环境里的setConsoleCursorPosition()具体代码如下:

void gotoxy(int x, int y) //定位光标
{
    COORD pos;
    pos.X = x - 1;
    pos.Y = y - 1;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}

事实上解决了这两个问题,整个程序的关键技术也就实现了。

接下来详细说一下程程序处理的思路:
1:小蛇的移动。
利用_kbhit()监视键盘,然后标记当前这一步方向。同时判断当前的方向是否可取(越界或者撞到自身)
2:重新绘图。
这个时候要判断是否遇到食物。针对这两种状况对小蛇处理
循环1、2步骤即为完整的流程。

最后再有一个关键的问题,是如何确定小蛇每一步的坐标。
初始坐标,然后在初始坐标基础上加减来实现小蛇每一步坐标的标记。

周末的时候一定要自己独立写出这段代码。go……


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics