贪吃蛇代码分析

上午在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……
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值