陈佳雨:用C++搞一个贪吃蛇的游戏的全过程
张欢的回答:
我自己写过贪吃蛇,我来说几句吧。 其实贪吃蛇的数据结构很简单,就是一个链表。 链表的每个结点就是贪吃蛇中的一个结点,要保存的基本信息有:这个点在视窗上描画的x,y坐标和这个点下一次移动的方向(当然,如果为了美观等等,这里的变量还可以扩充)。 动作有: 吃子:每次吃到一个东西,在new一个节点,接在原来的头结点指针上。 移动:根据头结点的移动方向,计算下一个节点的坐标,其余后面的节点依次前面一个结点的坐标值和移动方向。 撞死:头结点根据方向计算出来的下一个节点如果是墙,或者是自己的某一个节点,那么Game Over 整个游戏在点下开始后,打开计时器,OnTimer中做以上所说动作。根据蛇的长度可以调整计时器timer out的时间,以此来加快速度。 这些就是主要思路了,至于分数什么的是附属功能,就很简单了。 如果有什么疑问,我可以帮你看看,我的邮箱jack_ymm@163.com
郭美的回答:
我自己写过贪吃蛇,我来说几句吧。 其实贪吃蛇的数据结构很简单,就是一个链表。 链表的每个结点就是贪吃蛇中的一个结点,要保存的基本信息有:这个点在视窗上描画的x,y坐标和这个点下一次移动的方向(当然,如果为了美观等等,这里的变量还可以扩充)。 动作有: 吃子:每次吃到一个东西,在new一个节点,接在原来的头结点指针上。 移动:根据头结点的移动方向,计算下一个节点的坐标,其余后面的节点依次前面一个结点的坐标值和移动方向。 撞死:头结点根据方向计算出来的下一个节点如果是墙,或者是自己的某一个节点,那么Game Over 整个游戏在点下开始后,打开计时器,OnTimer中做以上所说动作。根据蛇的长度可以调整计时器timer out的时间,以此来加快速度。 这些就是主要思路了,至于分数什么的是附属功能,就很简单了。 如果有什么疑问,我可以帮你看看,我的邮箱jack_ymm@163.com
杜雷丝的回答:
一楼的貌似不错,可视化吧,不可视化就不怎么好看了。
米拉米亚的回答:
楼上的程序缺少n的定义, 在#define esc 0x011b 之后再加一行: #define n 30 这是一个tc下的程序,我用tc2编译后可以运行。(当然不可以在vc++6.0下编译)
龚莹的回答:
gxw1990422@yahoo.com.cn 也给我发个看看