跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 贪吃蛇游戏里,怎么设置食物位置?
未分類
2020 年 5 月 16 日

贪吃蛇游戏里,怎么设置食物位置?

贪吃蛇游戏里,怎么设置食物位置?

資深大佬 : cokyhe 11

类似贪吃蛇游戏,有很多条蛇同时在一个地图上,要求随机出现的食物不能一出现就被蛇给吃掉。 食物出现在蛇口的位置,毕竟体验不好。

也就是地图上有 N 多蛇( x,y),怎么保证食物出现的坐标,别和蛇重复,最好能保证一定距离。

有什么思路吗?谢谢各位大佬!

大佬有話說 (10)

  • 資深大佬 : wasd6267016

    为什么食物出现在蛇口的位置体验就不好? 这种小概率事件,作为玩家的 bonus 没什么不好吧

  • 資深大佬 : misdake

    统计所有可以放置的坐标,需要的话可以加不同的权重,统计好之后,在总权重范围内随机一个数,看这个数落在哪个坐标的权重范围内。

  • 資深大佬 : wasd6267016

    然后硬要做的话,你之前怎么生成的,生成之后价格判断呗,如果离某个蛇距离太近,就丢弃重新生成

    最后考虑一下极端情况,地图快被塞满的时候,只能能生成在嘴边了

  • 資深大佬 : newtype0092

    1.传统的贪吃蛇是有概率随机到面前的,并没有体验不好。
    2.多次随机、限定集合内随机(将随机数映射到可出现的坐标集合)

  • 資深大佬 : zhw2590582

    不嫌麻烦的话,我觉得可以这样做,以蛇的矩形为界限,获得多个区域,取最大那个区域,然后在最大的区域内随机获取坐标:

    ![img]( https://i.loli.net/2020/05/08/Wk8vrwy1xgPTuN2.png)

  • 資深大佬 : faceRollingKB

    随机数生成的方式就只有伪随机,这你改不了,你能控制的是生成的随机数要不要丢弃,例如某条蛇到食物的距离小于某个值就丢弃

  • 主 資深大佬 : cokyhe

    嗯,之前我是简单随机一个,不加任何的判断,尽量的减轻服务器的压力。
    我一直怀疑有简单方法,可以随机出地图上比较空的一个位置坐标

  • 資深大佬 : em2046

    提供一个想法,可能不是很合适
    假设蛇口的位置为图中的一个个的点,对点做维诺图,在维诺图的边线上生成食物,可以使得食物位于 2 个点(蛇口)之间
    https://www.npmjs.com/package/d3-voronoi 这里有维诺图的一些例子
    贪吃蛇游戏里,怎么设置食物位置?

  • 主 資深大佬 : cokyhe

    @zhw2590582 可以简单把蛇想象成一个点,随机出新的点,这个点别和现有的蛇重复

  • 資深大佬 : optional

    随机出来,不符合丢掉, 重新生成,缓存 n 个随机数避免一直生成不到结果。同时,判断条件会随着空格数量减少而改变。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具