c语言贪吃蛇转向问题

写了好多,怎么没显示,郁闷。我是用单链表写的,每一个身体节点存放x,y坐标,当转向时,让身体节点的所有x,y都等于头节点的。外层if有一个计数器i全局变量判断条件是i<h... 写了好多,怎么没显示,郁闷。我是用单链表写的,每一个身体节点存放x,y坐标,当转向时,让身体节点的所有x,y都等于头节点的。外层if有一个计数器i全局变量判断条件是i<head->length+1,内层for循环j全局变量判断条件是j<i,for循环语句是获取键盘按键依次x,y加1。原指针指向下一节点。然后新指针指向头并返回头,外层if中原指针指向头。以上写在一个函数中,在主函数中条件判断,连续调用上函数,直到不满足条件。就单链表来说有没有更好的实现方法。另外删除轨迹该怎么写呢? 展开
 我来答
缘明思
2014-04-25 · TA获得超过543个赞
知道小有建树答主
回答量:795
采纳率:88%
帮助的人:345万
展开全部
单链表,节点结构存Body放位置坐标x,y以及指向前一个结构的指针*fount。
计时器time,键盘捕捉函数getkey(),随机产生新身体newBody()。
程序开始->屏幕中心产生一个“蛇”->得到按键命令后移动->计时器++time后,按照上次得到的按键命令方向移动->得到新按键命令转向->得到新“身体”->撞墙(自身)结束游戏
产生蛇:屏幕确定地点选取三个位置,放置三个Body,在第一次接收按键时确定”头“坐标(x0,y0)。
头:*fount指向null的节点
移动和转向:确定坐标(如直角坐标系左上为(0,0),右下为(Mx,My)),左=x-1,右=x+1,上=y-1,下=y+1。且所有按键均为有效方向按键。
有效方向按键:”头“的下一个节点的坐标(x1,y1),如果在移动后满足x0!=x1,则为有效按键方向,接收按键。
身体移动:”头“移动后,身体依次接替前一项。即,”头“移动到”新头“,”头“的下一个,移动到头;再下一个移动到上一个,以此类推。
得到新“身体”:停止这一次计时器移动,并且把新“身体”当做“头”。
撞墙:“头”的坐标中有一个==边界坐标即为撞墙。
撞自身:“头”的坐标==“身体”中任意一个节点的坐标即为装自身。
chenfenggang99
2014-04-24 · TA获得超过1850个赞
知道大有可为答主
回答量:1746
采纳率:75%
帮助的人:1739万
展开全部
获取键盘事件,,,更改头的下一个位置x,和y 。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
净整那些没用的
2014-04-25 · TA获得超过100个赞
知道答主
回答量:45
采纳率:0%
帮助的人:22.7万
展开全部
问题描述在哪里?
追问
刚刚补充了,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式