c语言 想写个贪吃蛇,如何实现蛇身自己边长,求高人指点下。

西瓜味少年 2015-11-01 11:41:13
大一,接触c语言一个多月了,写了个固定长度的贪吃蛇,如何实现蛇身自己伸长啊,如何让软件自己定义个新变量?
...全文
448 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2015-11-03
  • 打赏
  • 举报
回复
早上试了一下,贪吃蛇可以用一个vector来存储蛇身,每次移动的时候,在vector头部插入新的蛇头,删除蛇尾,然后根据vector更新画面(只要更新新蛇头和旧蛇尾画面就可以了)
西瓜味少年 2015-11-03
  • 打赏
  • 举报
回复
引用 1楼sand6174 的回复:
用链表写____stl也行
百度了下链表 好像可以 研究下
ooolinux 2015-11-02
  • 打赏
  • 举报
回复
方块的随机出现位置可以用两次rand()函数得到随机的行坐标和列坐标,rand()之前可以用srand()初始化。 楼主可以的
ooolinux 2015-11-02
  • 打赏
  • 举报
回复
定时器到了准备移动,如果下一次的蛇头位置为墙壁(3)或者为蛇身(1),Game Over。
abc_ustone 2015-11-02
  • 打赏
  • 举报
回复
ooolinux 2015-11-02
  • 打赏
  • 举报
回复
引用 5 楼 u010165006 的回复:
[quote=引用 4 楼 u010165006 的回复:] 贪吃蛇的位置可以定义为二维数组里面的1,空的位置为0,方块的位置为2,吃掉方块以后尾巴添加一个1,方块的位置也改变为1(因为处于蛇身),每次刷新显示的时候根据贪吃蛇位置的数据来画。
每次刷新显示的时候多画一个蛇头,蛇尾用背景画没掉。 主要的是吃掉方块尾巴添加在哪个方向,一般添加的尾巴和原来尾巴的两个方块一条直线,或者尾巴添加在上一次移动蛇身前的尾巴位置。[/quote] 另外用5个变量来存储蛇头位置、蛇尾位置、上一次蛇尾位置、移动方向、下一次蛇头位置,蛇移动的时候如果蛇头位置等于随机的方块位置就吃掉方块,在上一次蛇尾位置添加蛇尾。其实这里还可以优化。
ooolinux 2015-11-02
  • 打赏
  • 举报
回复
引用 4 楼 u010165006 的回复:
贪吃蛇的位置可以定义为二维数组里面的1,空的位置为0,方块的位置为2,吃掉方块以后尾巴添加一个1,方块的位置也改变为1(因为处于蛇身),每次刷新显示的时候根据贪吃蛇位置的数据来画。
每次刷新显示的时候多画一个蛇头,蛇尾用背景画没掉。 主要的是吃掉方块尾巴添加在哪个方向,一般添加的尾巴和原来尾巴的两个方块一条直线,或者尾巴添加在上一次移动蛇身前的尾巴位置。
赵4老师 2015-11-02
  • 打赏
  • 举报
回复
搜“贪吃蛇 C语言源代码”
ooolinux 2015-11-02
  • 打赏
  • 举报
回复
贪吃蛇的位置可以定义为二维数组里面的1,空的位置为0,方块的位置为2,吃掉方块以后尾巴添加一个1,方块的位置也改变为1(因为处于蛇身),每次刷新显示的时候根据贪吃蛇位置的数据来画。
sand6174 2015-11-02
  • 打赏
  • 举报
回复
用链表写____stl也行
sand6174 2015-11-02
  • 打赏
  • 举报
回复
用链表写____stl也行

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧