我在玩ruby游戏时遇到了麻烦
我正在尝试为ruby制作一个游戏,但在我在玩ruby游戏时遇到了麻烦,ruby,Ruby,我正在尝试为ruby制作一个游戏,但在PlayerMove=$STDIN.gets.chomp上不断出现以下错误: 动态常数分配误差 我尝试将$STDIN的前面改为STDIN改为gets.chomp,但似乎没有任何效果 $Health = 100 $OPHealth = 50 def fight def NumberN $RandomNumber = ran(0..30) end def Player print ">" PlayerMove = ge
PlayerMove=$STDIN.gets.chomp
上不断出现以下错误:
动态常数分配误差
我尝试将$STDIN
的前面改为STDIN
改为gets.chomp
,但似乎没有任何效果
$Health = 100
$OPHealth = 50
def fight
def NumberN
$RandomNumber = ran(0..30)
end
def Player
print ">"
PlayerMove = gets.chomp
if PlayerMove.downcase == "attack"
RandomNumber - OPHealth
puts "You attach the Spider and do #{RandomNumber} Damage,\n he has #{OPHealth}"
elsif OPHealth >= 0
puts "The SPIDER IS DEAD"
ENDGAME()
elsif Health >= 0
puts "Your dead GAMEOVER you abomination"
else
puts "You need to attack"
Player()
end
end
这个特殊的问题将与您使用的情况有关:对于变量,Ruby使用小写 更新要使用的代码变量,例如:
player\u move=gets.chomp
,这将解决错误
按原样使用大写是为类和模块保留的(常量通常使用大写)。(我肯定我遗漏了一些东西——如果有人能纠正我,请告诉我。)
因此,在您指定值时抛出您提到的“动态常数指定错误”
请仔细阅读一下:前缀为$
的全局变量也很少出现。这是一个很好的资源
这就是说,仅仅更新变量并不能完全解决这个问题——在这起作用之前,您需要查看代码的范围和结构。当你遇到另一个问题时,看看你是怎么解决的,如果你不能解决它,就把它放进另一个问题。这个问题将与你使用的情况有关:对于变量,Ruby使用小写 更新要使用的代码变量,例如:
player\u move=gets.chomp
,这将解决错误
按原样使用大写是为类和模块保留的(常量通常使用大写)。(我肯定我遗漏了一些东西——如果有人能纠正我,请告诉我。)
因此,在您指定值时抛出您提到的“动态常数指定错误”
请仔细阅读一下:前缀为$
的全局变量也很少出现。这是一个很好的资源
这就是说,仅仅更新变量并不能完全解决这个问题——在这起作用之前,您需要查看代码的范围和结构。当你遇到另一个问题时,看看你进展如何,如果你不能解决它,就提出另一个问题。@Thekwarior有帮助吗?@Thekwarior有帮助吗?