2014-11-04 59 views
0

我試圖調試這個問題,我無法弄清楚。我有一個戰爭卡班,我想要做的是打印結果,顯示玩家人數,玩家人數和雙方玩家的手。我得到的數字和球員的工作,但我無法獲得數量的戲劇。任何幫助將不勝感激。我關注的變量是@num_plays。戰爭遊戲to_s方法拋出未定義的方法錯誤

在這裏,我初始化num_plays和它的每一個玩家抽卡增加值時間設置爲0 階級戰爭

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 

這裏(我沒有表現出所有玩的方法)

def play 
#Player Draw 
@num_plays += 1 
card_a = @player_a.deal 

最後我的to_s方法拋出一個未定義的方法錯誤。

def to_s 
     output = " " 
    output += "Number of plays:" + " " + @player_a.num_plays.to_s 
+1

我看到'num_plays'訪問在'War'上,但是你在'@ player_a'上調用它 - 那裏也有嗎?請添加您的錯誤的文本。 – 2014-11-04 18:47:11

+0

不,我不是想在每次播放後加一個 – user3643195 2014-11-04 18:50:44

+0

這裏是錯誤:war.rb:99:在'to_s':undefined方法'num_plays'爲#(NoMethodError) 來自test.rb:4:'寫入' from test.rb:4:in'print' from test.rb:4:in'

' – user3643195 2014-11-04 18:52:08

回答

0

由於@JTG的意見建議,錯誤是告訴你,你要叫num_playsDownStack實例 - 代碼@player_a.num_plays你已經證明 - 這沒有實現它。

War實例使用num_plays,這應該做你出什麼

# war.rb 
def to_s 
    "Number of plays: #{@num_plays}" 
end 

,你需要添加你提到的其他值)

+0

完美謝謝! – user3643195 2014-11-04 19:02:54