这是一个石头剪刀布游戏。从 irb,game.class 说它是一个数组。我希望找到赢得比赛的人的姓名(在本例中为 Player2)。
游戏 = [[“玩家 1”,“P”],[“玩家 2”,“S”]]
想到的方法是返回一个拆分名称值的哈希。然后通过该值搜索该哈希以获取玩家名称。
h = Hash.new(0)
game.collect do |f|
h[f] = f[1]
end
h
#=> {["Player1", "P"]=>"P", ["Player2", "S"]=>"S"}
这是接近但没有雪茄。我想
{"Player1" => "P", "Player2" => "S"}
我再次尝试使用注入方法:
game.flatten.inject({}) do |player, tactic|
player[tactic] = tactic
player
end
#=> {"Player1"=>"Player1", "P"=>"P", "Player2"=>"Player2", "S"=>"S"}
这不起作用:
Hash[game.map {|i| [i(0), i(1)] }]
#=> NoMethodError: undefined method `i' for main:Object
我会很感激一些可以帮助我理解的东西。