2014-11-04 3 views
0

이 문제를 디버그하려고했는데 알아낼 수 없습니다. 나는 전쟁 카드 클래스를 가지고 있으며, 플레이 횟수, 카운트 수 및 두 선수가 가진 손을 보여주는 결과를 프린트하고 있습니다. 나는 숫자를 얻고 선수는 일하러 가야하지만 나는 경기 수를 얻을 수 없다. 어떤 도움이라도 대단히 감사하겠습니다. 내가 집중하고있는 변수는 @num_plays입니다. 여기전쟁 게임 to_s 메서드가 정의되지 않은 메서드 오류를 던졌습니다

나는

def play 
#Player Draw 
@num_plays += 1 
card_a = @player_a.deal 
(I 놀이 방법을 모두 보여주지 않았다) 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 

에 플레이어가 카드 값에 추가립니다 때마다로 설정

마지막으로 정의되지 않은 메서드 오류가 발생하는 to_s 메서드입니다. 코드에서 @player_a.num_plays 당신이 보여준 - -을 구현하지 않는

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

(, 당신은 당신이 언급 한 다른 값을 추가 할 필요가) 표시했습니다 어떻게해야 '전쟁 '에 대해서, 그러나 당신은'@ player_a'에서 그것을 부르고 있습니다 - 거기에도 하나 있습니까? 오류 텍스트도 함께 입력하십시오. –

+0

아니요 모든 재생 후 카운트에 1을 더하는 것이 좋지 않습니다. – user3643195

+0

war.rb : 99 : to_s : 정의되지 않은 메서드 num_plays for # (NoMethodError) test.rb의 4 : test.rb의 4 : :

의 – user3643195

답변

0

@JTG이 코멘트에 제안 된 것과 같은 오류가 당신이 DownStack 인스턴스 num_plays 전화를 위해 노력하고 있음을 말하고있다 . War 인스턴스에서 num_plays를 사용

,이`num_plays` 접근이

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

내가 볼

+0

고마워요! – user3643195

관련 문제