Project1

标题: 求助,按顺序弹钢琴,如何实现? [打印本页]

作者: 青桑雪雾    时间: 2018-1-27 15:33
标题: 求助,按顺序弹钢琴,如何实现?
本帖最后由 青桑雪雾 于 2018-1-27 15:46 编辑

基本上要被弄疯了……
先说原来的设想。我弄了一个地图,地图上有8个事件,分别能发出不同的音。然后按顺序开启开关1~10,在最后一个开关完成整个过程
但是不知道为什么总是实现不了……(主要是中间插入照样成立,如果一个个开关过去基本上很麻烦)
(……在我发完贴之后有大神帮忙……千恩万谢简直……!!!!)

已经不知道说什么好了……

QQ图片20180127153347.png (14.48 KB, 下载次数: 24)

QQ图片20180127153347.png

作者: 青桑雪雾    时间: 2018-1-27 15:36
然后示意图大概是这样↓
作者: 青桑雪雾    时间: 2018-1-27 15:43
青桑雪雾 发表于 2018-1-27 15:36
然后示意图大概是这样↓

诶诶诶诶请等等!
作者: MireniamuYuki    时间: 2018-1-27 16:20
本帖最后由 MireniamuYuki 于 2018-1-27 16:44 编辑

设置一个代表顺序的变量,每弹对一个键,变量(顺序)+1
弹下一个键时
条件分歧 变量 = 弹的顺序?
是的话变量+1 否则变量-10(重新弹)
(10是总的琴键顺序数)

QQ截图20180127164325.png (4.66 KB, 下载次数: 23)

QQ截图20180127164325.png

作者: 聆语    时间: 2018-1-27 16:36
要用我的方法会比较复杂……
例1:
【取用变量001,判断“正确弹奏”次数】
假设a,“琴键”有:1|2|3|4|5|6|7。
假设b,“弹奏乐谱”为:4545677。
当变量001值为0,玩家触发“琴键2”,返回“错误”(,变量001的值清零)。
当变量001值为0,玩家触发“琴键4”,返回“正确”,变量001的值+1。
当变量001值为1,玩家触发“琴键6”,返回“错误”,变量001的值清零。
当变量001值为1,玩家触发“琴键5”,返回“正确”,变量001的值+1。
同理。
这个方法的缺点就是可以穷举,玩家迟早能猜到。但你要是强制设置某个必须满足的“条件”,可以避免被过早解开谜题,就是容易被玩家吐槽。
要是要多次使用,记得自己设置不同条件。还有,该过程可以自己细微改一下,不明确返回“真假”,但是容易把不认真的玩家弄糊涂,需要你设置一个手动重置事件。

例2:
【取用变量001,判断“弹奏”次数;取用变量002,判断当前输入内容(;取用变量n,作为预设密码)】
采用假设a、b。
当变量001值为0,玩家触发“琴键2”,变量002的值+2,变量001的值+1。
当变量001值为1,玩家触发“琴键6”,变量002的值+(6×10),变量001的值+1。
同理。
最后判断,变量002的值是否等于某个数字(、或是变量n)。
这里注意一下,预设的密码要反着写。或者,从事件最初,变量002就从最大的开始乘,比如是七位数密码,那么先乘1000000。
这个方法不怕被随随便便猜到,就是数字要悠着点,别搞混了。
作者: WantMy蕙    时间: 2018-1-27 20:23
能不能把工程发上来看看。。。不是很明白你的意思
作者: 阵颜    时间: 2018-1-27 23:25
本帖最后由 阵颜 于 2018-1-28 10:58 编辑

如果我来做这个谜题的话,
我会先设置 $game_variables[1] = []
然后在不同的事件上设置将当前位置推入到变量内,比如:  $game_variables[1] .push(1) (当玩家敲下do的时候)
然后判断 $game_variables[1] 内的数字个数,代表玩家敲入了几个键了。
分支条件里判断 $game_variables[1].size  == 10(表示玩家敲入10个键)
如果成立的话,就判断$game_variables[1] == [1,2,3,4,5,6,7,8,1,2](这个根据你正确的顺序来确定)
是否成立,不成立的话,$game_variables[1] = []
不知道看懂了没有...
PS.因为楼主你没说清楚失败的场合是什么样的,
所以我默认为是当玩家弹了10个键以后再进行判断。
如果顺序输入的键和期待的键不一致就清空记录。
但是如果你希望其他更复杂一点的功能的话,
请详细说明白。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1