2015-10-16 116 views
-1

IM里面playername试图访问什么在他/她的用户名的用户类型是我的模块之外的功能,所以它可以在我的模块的内部使用从oustide模块访问的模块

module RetryMessages 
    def RetryMessages.message1() 
     puts "That was an incorrect Choice #{@your_name}... Try again man." 
    end 
    MESSAGE2 = "Man you messed up #{@your_name} Try again." 
    MESSAGE3 = "Hey man you screwed up..... Try again #{@your_name}." 
end 


def player_name 
    puts "Hey man whats your name?" 
    @your_name = $stdin.gets.chomp.upcase 
    play_game 
end 
+0

你的问题是什么? – sawa

+0

为什么我的模块中没有玩家名称通过我的代码的其余部分检测用户输入的内容它知道玩家名称,但由于某种原因不在模块内部......如果需要,我可以发布剩余的代码 –

回答

0

这是一个错误的设计。让您的信息模板:

MESSAGES = [ 
    "That was an incorrect Choice %<your_name>s... Try again man.", 
    "Man you messed up %<your_name>s Try again.", 
    "Hey man you screwed up..... Try again %<your_name>s." 
] 

再后来

puts MESSAGES[0] % { your_name: "Joseph" } 

这样,您使用的名称,其中实际可访问它的地方。

+0

甜,这似乎工作至少就IRB感谢这可能只是帮助....感谢的人,如果有人想帮助ñ尝试我的游戏ñ看到任何错误,我打我 –

+0

等待然后用户如何名称输入到它? –

+0

使用'%'运算符和替换数组。每个'% s'被替换为相应的值。 – Amadan