我的红宝石游戏请遇到问题

时间:2018-06-14 14:48:33

标签: ruby

我正在尝试为红宝石制作游戏,但我在$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 ,似乎没有任何效果。

int

1 个答案:

答案 0 :(得分:3)

这个特殊问题将与你正在使用的情况有关:对于变量,Ruby使用较低的蛇案例。

更新要使用的代码变量,例如:player_move = gets.chomp,这样可以解决错误。

使用上层camel case保留用于类和模块(常量使用大写)。 (我确定我在这里遗漏了一些东西 - 让我知道是否有人可以纠正我。)

因此,按原样分配值会引发您提到的“动态常量赋值错误”。

对此进行一些阅读:前缀为$的全局变量也很少见。这个style guide是非常好的资源。

也就是说,简单地更新变量并不能完全解决这个问题 - 在此之前,您需要查看代码的范围和结构。当你遇到另一个问题时,看看你是如何进行的,如果你无法修复它,请将其弹出另一个问题。