用C语言计算蛇形游戏中的随机食物位置

时间:2016-06-14 16:31:47

标签: c

我有问题理解为什么必须像这样计算食物位置:

foodSite.x = (rand()%23*2+1)+2;
foodSite.y = rand()%17+2;

游戏中的边界大小为50 * 19.

我尝试将代码更改为rand()%49 + 1和rand()%18 + 1,但之后游戏将无效。食物不会被蛇吃掉。它只是保持不变。

1 个答案:

答案 0 :(得分:1)

  • 鉴于

    foodSite.x = (rand()%23*2+1)+2;
    foodSite.y = rand()%17+2;
    

    xy的域名分别为[3, 47][2, 18]

  • 相反,给定

    foodSite.x = rand()%49+1;
    foodSite.y = rand()%18+1;
    

    xy的域名分别为[1, 49][1, 18]

因此,这两个表达式与等效域不对应。

至于游戏无法正常工作的原因,很可能食物不应放在某些地方,这只是硬编码< / em>以某种方式。