2017-08-07 15 views
-1

デッキを作成してシャッフルして、4人のプレイヤーに7枚のカードを渡そうとしました。このコードではカードをプレイヤーの手札に移動しよう

irb(main):097:0*  deck.each do 
irb(main):098:1*  [email protected] << deck.pop() 
irb(main):099:1>  end 
SyntaxError: (irb):98: syntax error, unexpected tIVAR, expecting '(' 
     [email protected] << deck.pop() 
      ^

次のエラーを取得

class Player 
    attr_accessor :hand 

    def initialize(hand) 
    @hand = hand 
    end 
end 
+2

あなたはプレイヤーのクラスを追加することはできますか? –

+3

[構文エラー、予期しないtIVAR、 '(')(https://stackoverflow.com/questions/21625992/syntax-error-unexpected-tivar-expecting)を期待しています –

+0

あなたは '。@ hand 'クラス変数にアクセスするには –

答えて

0

は、私はそれ彼らの手の追加、新しいカードを受け入れるようにプレイヤーにメソッドを定義します。

だから、のようなもの:

def take_card(card) 
    hand << card 
end 

...につながる...

deck.each do 
    @player.take_card deck.pop 
end 

注私は選手クラスのインスタンスを参照するために使用してい@player、。 Playerの使用はおそらくここでは正しくありません。

あなたはオペレータ...

def <<(card) 
    hand << card 
end 

を実装することができ...そして...

deck.each do 
    @player << deck.pop 
end 
+0

@davidaldrigeこのようにPlayer.take_card << deck.pop割り当てられていないことがわかりました演算子? – Royal

+0

代入演算子は必要ありませんが、これを使用して更新を投稿しました –

+0

結果:irb(main):100:0 * deck.each do irb(main):101:1 * Player.take_card << NoMethodError:未定義メソッド 'take_card 'for Player:クラス から(irb):101:iへのデッキ.pop irb(main):102:1> end NoMethodError: 'irb_bindingのnブロック' from(irb):100: 'each ' (irb)から100 C:/Rails2.3.0/bin/irb.cmd:19:

の – Royal

関連する問題