出于某种原因,这不是迭代集合.在那里投掷撬显示只有第一个索引被查看.[0,1,2]我确定我只是累了,它很小,但我在这里画了一个黑色,
WIN_COMBINATIONS = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6]
]
def won?(board)
WIN_COMBINATIONS.each do |combo|
if board[combo[0]] != " " && board[combo[0]] == board[combo[1]] && board[combo[0]] == board[combo[2]]
return combo
else
return false
end
end
end
Run Code Online (Sandbox Code Playgroud)
def won?(board)
WIN_COMBINATIONS.any? do |combo|
board[combo[0]] != " " &&
board[combo[0]] == board[combo[1]] &&
board[combo[0]] == board[combo[2]]
end
end
Run Code Online (Sandbox Code Playgroud)
或者,更简洁Array#values_at:
def won?(board)
WIN_COMBINATIONS.any? do |combo|
[%w|X| * 3, %w|O| * 3].include? board.values_at(*combo)
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |