贪吃蛇移动中的某段代码看不懂。求大神解释!!?

Big-Heart 2014-03-15 03:59:00
为什么“case 1:snake.x[0]+=10;break; ”要加10?是因为10是每个格子的基本单位吗?
for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/
{
snake.x[i]=snake.x[i-1];
snake.y[i]=snake.y[i-1];
}
/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/
switch(snake.direction)
{
case 1:snake.x[0]+=10;break;
case 2: snake.x[0]-=10;break;
case 3: snake.y[0]-=10;break;
case 4: snake.y[0]+=10;break;
}
求解释!!!
...全文
154 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Big-Heart 2014-04-08
  • 打赏
  • 举报
回复
你为什么加10、减10会导致蛇左右移动呢?
赵4老师 2014-03-17
  • 打赏
  • 举报
回复
我猜蛇每走一步,像素坐标±10
buyong 2014-03-16
  • 打赏
  • 举报
回复
引用 楼主 u013797947 的回复:
为什么“case 1:snake.x[0]+=10;break; ”要加10?是因为10是每个格子的基本单位吗? for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/ { snake.x[i]=snake.x[i-1]; snake.y[i]=snake.y[i-1]; } /*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/ switch(snake.direction) { case 1:snake.x[0]+=10;break; case 2: snake.x[0]-=10;break; case 3: snake.y[0]-=10;break; case 4: snake.y[0]+=10;break; } 求解释!!!
yes
zxvivian 2014-03-16
  • 打赏
  • 举报
回复
移动一次就对坐标+10,应该10就是指的一格
qq120848369 2014-03-16
  • 打赏
  • 举报
回复
那就快速了解一下C语言就好了。
嘎啦汤 2014-03-16
  • 打赏
  • 举报
回复
这个是c语言的代码吧!还没看过。
羽飞 2014-03-15
  • 打赏
  • 举报
回复
如果说格子单位是10,那就应该加/减10啊,有什么问题

64,667

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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