ink 语言交流小组

创建于:2018-10-30

创建人: eastecho

15 信息 92 成员
专门交流和讨论 inkle 的 ink 语言

请教一下——ink是否有办法写出随机数来?

Yussy 2021-03-04

(但愿还有人在——)

(过去一段时间理解了ink中很多表达是与h5共通的之后自学了一点点做了一些小小的尝试,希望之后能出一些纯文本表现的作品。)

在网上稍微查找得到的结果是h5貌似不支持直接生成随机数,ink本身的文档里也没有发现关于随机数的有用的信息,但个人感觉要是能实现随机数,对于纯文本交互叙事的趣味性提升应该会很大,因此,在讨论ink的为数不多的论坛当中还是回来这里请教。

要是哪天有大佬看见并且有想法,期待交流一下——

近期喜欢的会员

 
eastecho 2021-03-04

最近没有看这一块儿,但是文档中有这两部分内容:


SEED_RANDOM()

For testing purposes, it's often useful to fix the random number generator so ink will produce the same outcomes every time you play. You can do this by "seeding" the random number system.

~ SEED_RANDOM(235)

The number you pass to the seed function is arbitrary, but providing different seeds will result in different sequences of outcomes.

Advanced: more queries

You can make your own external functions, though the syntax is a bit different: see the section on functions below.


RANDOM(min, max)

Ink can generate random integers if required using the RANDOM function. RANDOM is authored to be like a dice (yes, pendants, we said a dice), so the min and max values are both inclusive.

~ temp dice_roll = RANDOM(1, 6)
~ temp lazy_grading_for_test_paper = RANDOM(30, 75)
~ temp number_of_heads_the_serpent_has = RANDOM(3, 8)

The random number generator can be seeded for testing purposes, see the section of Game Queries and Functions section above.

来源:https://github.com/inkle/ink/blob/master/Documentation/WritingWithInk.md


根据不同版本的差异,如果您的版本不支持随机的话,还有一种变通方法,就是使用 Shuffles 来对预定义好的数据来进行随机选择:

{random()}
{random()}
{random()}
{random()}

== function random ==
{shuffle:
 - ~ return 0
 - ~ return 1
 - ~ return 2
 - ~ return 3
 - ~ return 4
 - ~ return 5
 - ~ return 6
 - ~ return 7
 - ~ return 8
 - ~ return 9
}

参考:https://github.com/inkle/ink/issues/168

 
Yussy 2021-03-04

eastecho 还是看得不够仔细了,十分感谢!

 

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册