2016-08-12 14 views
0

Ich versuche, die Grundlagen eines Kartenspiels zu erstellen. Beim Erstellen/Testen meines anfänglichen Decks erhalte ich die folgende Fehlermeldung, wenn ich meinen Ruby-Code ausführe.Ruby-Syntaxfehler, unerwartetes Ende der Eingabe, erwartet keyword_end

gofish.rb:30: syntax error, unexpected '\n', expecting :: or '[' or '.' 
gofish.rb:73: syntax error, unexpected end-of-input, expecting keyword_end 
deck.add_cards 

sah ich mögliche Lösungen auf, und ich kann nicht scheinen, meine fehlende Ende zu finden. Könnte es möglicherweise etwas anderes sein? Ich bin sehr neu in Ruby.

class Deck 

    def initialize 
     @ranks = %w(2 3 4 5 6 7 8 9 10 Jack Queen King Ace) 
     @suits = %w(Clubs Spades Hearts Diamonds) 
     @cards = [] 

     @ranks.each do |rank| 
      @suits.each do |suit| 
       @cards << Card.new(rank, suit) 
      end 
     end 
    end 

    def shuffle 
     @cards.shuffle 
    end 

    def deal 
     @cards.shift 
    end 

    def empty? 
     @cards.empty? 
    end 

    def add_cards(*cards) 
     *cards.each do |card| 
      @cards << card 
     end #line 30 
    end 

    def to_s 
     output = "" 

     @cards.each do |card| 
      output = output + card.to_s + "\n" 
     end 

     return output 
    end 
end 

class Hand 

    def initialize 
    end 

    def search() 
    end 
end 

class Card 

    attr_reader :rank, :suit 

    def initialize(rank, suit) 
     @rank = rank 
     @suit = suit 
    end 

    def to_s 
     "#{@rank} of #{@suit}" 
    end 
end 

deck = Deck.new 

puts deck.to_s 
deck.shuffle 
puts deck.to_s 
deck.deal 
deck.add_cards #line 73 
+0

Sie erwarten _us Zeilennummern zählen bis zu 30 und 73_? – mudasobwa

+3

'* cards.each do | card |' ⇒ 'cards.each do | card |' – mudasobwa

+1

@mudasobwa Bearbeitet, um die Zeilennummern einzuschließen. Danke für die Lösung! –

Antwort

1

Sie nicht den Splat-Operator in der Methode verwendet werden sollen, ist es einfach weiter in Argumenten:

def add_cards(*cards) 
    cards.each do |card| 
     @cards << card 
    end 
end 
Verwandte Themen