Ruby 战争游戏对_的方法抛出未定义的方法错误
我已经试着调试这个问题,但我无法解决它。我有一个战争卡类,我想做的是打印结果,显示游戏次数、计数以及两名玩家的牌数。我会数数,球员们也会动手工作,但我不能得到比赛的次数。任何帮助都将不胜感激。我关注的变量是@num_plays 这里我初始化num_plays并将其设置为0 阶级战争Ruby 战争游戏对_的方法抛出未定义的方法错误,ruby,Ruby,我已经试着调试这个问题,但我无法解决它。我有一个战争卡类,我想做的是打印结果,显示游戏次数、计数以及两名玩家的牌数。我会数数,球员们也会动手工作,但我不能得到比赛的次数。任何帮助都将不胜感激。我关注的变量是@num_plays 这里我初始化num_plays并将其设置为0 阶级战争 attr_reader :num_plays def initialize orig_deck = Deck.new @player_a = DownStack.new @player_b = DownStack
attr_reader :num_plays
def initialize
orig_deck = Deck.new
@player_a = DownStack.new
@player_b = DownStack.new
@limbo_stack = DownStack.new
@num_plays = 0
在这里,玩家每次抽牌都会增加值(我没有显示所有的打法)
最后,我的to_方法抛出了一个未定义的方法错误
def to_s
output = " "
output += "Number of plays:" + " " + @player_a.num_plays.to_s
正如@JTG在评论中所建议的,错误是告诉您试图调用
DownStack
实例上的@player\u a.num\u plays
,而您显示的代码中没有实现它
在War
实例上使用num\u plays
,应该可以完成您所显示的操作
# war.rb
def to_s
"Number of plays: #{@num_plays}"
end
(即,您需要添加您提到的其他值)我在
War
上看到了num\u plays
accessor,但您在@player\u a
上调用了它——那里也有吗?请把你的错误也加上。不,我不是这个主意,是在每次播放后在计数中加上一个。这里是错误:war。rb:99:into_'s:undefined method
num_plays'for#(NoMethodError)from test.rb:4:inwrite'from test.rb:4:in
print'from test.rb:4:in``不完全确定要做什么,但您的主要问题似乎是,您试图在一个没有将其作为方法/属性的对象上调用num\u plays
。一定要格式化它,使其可读。
# war.rb
def to_s
"Number of plays: #{@num_plays}"
end