Project1

标题: 关于逻辑变量 [打印本页]

作者: 沉影不器    时间: 2007-7-6 16:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: 沉影不器    时间: 2007-7-6 16:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: kaze    时间: 2007-7-6 16:45
某A *= -1
作者: 沉影不器    时间: 2007-7-6 16:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: 精灵使者    时间: 2007-7-6 16:54
用not。
在饮用这个开关的地方前面加入一个not 就会自动反相
作者: kaze    时间: 2007-7-6 16:55
开关是布尔变量啊

知道LZ的意思了{/gg}

用某A ==false
作者: 精灵使者    时间: 2007-7-6 16:56
以下引用kaze于2007-7-6 8:55:06的发言:

开关是布尔变量啊

他的那个用的是 true 和false。
作者: kaze    时间: 2007-7-6 16:57
以下引用精灵使者于2007-7-6 8:54:45的发言:

用not。
在饮用这个开关的地方前面加入一个not 就会自动反相


[本贴由作者于 2007-7-6 8:55:30 最后编辑]

这个也行
不过如果是true ==false就会返回false
false ==false就会返回true
作者: 精灵使者    时间: 2007-7-6 17:00
这个not是单目运算符,只需要一个变量就可以了。如果你想用两个来决定一个的话就得配合and和or联合使用。
作者: 沉影不器    时间: 2007-7-6 17:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: kaze    时间: 2007-7-6 17:01
以下引用沉影不器于2007-7-6 9:00:45的发言:


以下引用精灵使者于2007-7-6 8:54:45的发言:

用not。
在饮用这个开关的地方前面加入一个not 就会自动反相


[本贴由作者于 2007-7-6 8:55:30 最后编辑]


如何改开关本身的布尔值?



用我说的那个嘛
作者: 沉影不器    时间: 2007-7-6 17:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: 精灵使者    时间: 2007-7-6 17:02
你应该把这个原来开关反相再赋予吧?是不是这样?
$game_switches[1] = not $game_switches[1]
作者: kaze    时间: 2007-7-6 17:02
某A==false
作者: 沉影不器    时间: 2007-7-6 17:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: 精灵使者    时间: 2007-7-6 17:04
恩恩。直接赋值也可以。不过他好像说的是反转,也就是
本来是开着的要关上
本来是关上的要打开。
那样的话用条件分歧在加上边的?
if $game_switches[1]
$game_switches[1] = false
else
$game_switches[1] = true
end
或者就直接这样写。
not $game_switches[1]
就可以反转了。
not
例子:

! me
not me
i != you

语法:

'!' 表达式
not 表达式

若表达式值为真就返回伪,若表达式值为伪则返回真。

也可以使用下面的语法。

表达式 '!=' 表达式          # 等同于 !(表达式 == 表达式)
表达式 '=~' 表达式          # 等同于 !(表达式 =~ 表达式)

作者: kaze    时间: 2007-7-6 17:05
怎么总54我说的啊

if  开关A ==false
A = true
else
A = false
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 精灵使者    时间: 2007-7-6 17:09
以下引用kaze于2007-7-6 9:05:36的发言:

怎么总54我说的啊

if  开关A ==false
A = true
else
A = false



[本贴由作者于 2007-7-6 9:06:31 最后编辑]

因为 这个 true 和false可以直接在if里面判定,所以条件里可以不用写。
或者直接说 not A就行。
举个例子。
if not 开关A
A = true
else
A = false
作者: kaze    时间: 2007-7-6 17:11
以下引用精灵使者于2007-7-6 9:09:16的发言:


以下引用kaze于2007-7-6 9:05:36的发言:

怎么总54我说的啊

if  开关A ==false
A = true
else
A = false



[本贴由作者于 2007-7-6 9:06:31 最后编辑]


因为 这个 true 和false可以直接在if里面判定,所以条件里可以不用写。
或者直接说 not A就行。


[本贴由作者于 2007-7-6 9:09:52 最后编辑]


了解
对了写成
A = (A==false)行不?
作者: 沉影不器    时间: 2007-7-6 17:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: kaze    时间: 2007-7-6 17:12
以下引用沉影不器于2007-7-6 9:11:15的发言:

不是无视,因为这个办法我也知道。效果当然是一样,但我问的是RUBY对布尔型怎么运算——好像问得不清楚,抱歉哈。

如果只能这样做,那么我可以用变量来代替。
$game_variables[1]=1
$game_variables[1]-=$game_variables[1]

那不就是0了?
作者: 沉影不器    时间: 2007-7-6 17:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: 精灵使者    时间: 2007-7-6 17:14
这个能不能反转以后再度赋值呢?
作者: 沉影不器    时间: 2007-7-6 17:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: kaze    时间: 2007-7-6 17:16
以下引用沉影不器于2007-7-6 9:14:26的发言:

唔写错了
*=

那也是*=-1啊
作者: 精灵使者    时间: 2007-7-6 17:20
另外一个问题,能不能直接给这个赋值?刚才我就再问这个问题。
$game_switches[1] = not $game_switches[1]是否成立?
如果不成立的话就直接用条件分歧赋值好了。
作者: 沉影不器    时间: 2007-7-6 17:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 精灵使者    时间: 2007-7-6 17:27
以下引用沉影不器于2007-7-6 8:52:38的发言:


以下引用kaze于2007-7-6 8:45:32的发言:

某A *= -1


$game_switches[1] *= -1《——————失败。

纯引用。
作者: kaze    时间: 2007-7-6 17:29
以下引用精灵使者于2007-7-6 9:20:59的发言:

另外一个问题,能不能直接给这个赋值?刚才我就再问这个问题。
$game_switches[1] = not $game_switches[1]是否成立?
如果不成立的话就直接用条件分歧赋值好了。
以下引用kaze于2007-7-6 9:11:04的发言:
了解
对了写成
A = (A==false)行不?


我也想知道啊
作者: 沉影不器    时间: 2007-7-6 17:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: 精灵使者    时间: 2007-7-6 17:33
开关看来必须直接赋值了。不过他好像说的是反转,也就是
本来是开着的要关上
本来是关上的要打开。
那样的话用条件分歧在加上边的?
if $game_switches[1]
$game_switches[1] = false
else
$game_switches[1] = true
end

看来用这种条件分歧的笨方法应该可以了吧。这样的话开关就会被赋予新值……
以前的程序上有 A= not A这种写法的,这个叫做自我反转。
好像这个开关不能直接用。
换个事件版的吧。
条件分歧:开关 0001 为 ON 时
  开关操作: 开关0001 = OFF
除此以外的场合
  开关操作: 开关0001 = ON
分歧结束

上边的脚本就是这个意思。
作者: 沉影不器    时间: 2007-7-6 17:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: 精灵使者    时间: 2007-7-6 17:43
刚才我有个纯事件版本的……脚本都不用。那个直接写公共事件就行。




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