2016-07-16 12 views
-2

私はボード上の各位置がこのコード行によって取られているかどうかを確認しようとしています。誰かがなぜ私のことを説明することができますか?こんにちはちょうど初心者のルビープログラマここでいくつかを理解したい

def full?(board) 
    **board.all?{|position| position == "X" || position == "O"} 
end** 

誰が優勝者であるかを知るために、誰かが私に星の力学を説明することができますか?

def winner(board) 
    ****if winning_combo == won?(board) 
    board[winning_combo.first]**** 
    end 
end 

答えて

1

は、我々はboardの構造は、あなたが提供される例からであるかを正確に伝えることができないが、それはいくつかのEnumerableのようです。

Enumerable.all?

全てを見てみましょうか? [{| obj |ブロック}]→真または偽

与えられたブロックにコレクションの各要素を渡します。ブロックがfalseまたはnilを返さない場合、このメソッドはtrueを返します。

のでboard.all?{|position| position == "X" || position == "O"}は、それはどちらかである任意のpositionは、まだそれらのいずれかの値に設定されていない場合"X"または"O"full?はfalseを返しますかどうかを確認するためにboardの各要素をテストします。

winning_comboは、提供されたコードまたは正確にはwon?の機能とは何かを知る方法がありません。 winning_combo.firstはインデックスを返します。その場合、boardArrayの場合、board[winning_combo.first]はボードの1つの要素を取得します。この場合、full?から、要素が"X"または"O"であることがわかります。したがって、winnerはこれらの文字の1つを返します。

+0

説明をありがとう! –

関連する問題