我有一系列的玩家。每个玩家都被分配了一个score_value。我要找那些打成平手的选手。
这个数组是@@players_list,它有未知数量的播放器。
我试过了:
@@players_list = [player1, player2, player3]
tied = @@Players_.list.find_all {|p| p.win_value.to_s.count(p.win_value.to_s) > 1}这不会返回错误,但也不会标识重复的分数值
tied = @@players_list.select {|p| array{|p| p.score_value}.count(p.score_value) > 1}.uniq 这将返回:
syntax error, unexpected '}', expecting keyword_end
..._value}.count(p.win_value) > 1}.uniq发布于 2019-07-30 09:32:04
感谢Sergio Tulentsev让我达到了90%。这是我想出的似乎有效的方法。
group_by_win_value = @@players_list.group_by(&:win_value)
group_by_win_value.each do |key, value|
@tied_players = []
if value.count > 1
puts "the following players are tied"
value.each do |player|
puts player.name``
@tied_players << player
end
end
endhttps://stackoverflow.com/questions/57242259
复制相似问题