Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- items = {
- 1 => {
- "title" => "Red Apple",
- "spec" => {
- "sugar" => 220,
- "vitc" => 3,
- "water" => 100
- }
- },
- 2 => {
- "title" => "Green Apple",
- "spec" => {
- "sugar" => 110,
- "vitc" => 4,
- "water" => 100
- }
- },
- 3 => {
- "title" => "Orange",
- "spec" => {
- "sugar" => 180,
- "vitc" => 15,
- "water" => 300
- }
- }
- }
- spec_funct = {
- "sugar" => ">",
- "vitc" => ">",
- "water" => ">"
- }
- def min(*args)
- return args[0].index(args[0].values.min)
- end
- def max(*args)
- return args[0].index(args[0].values.max)
- end
- specs = {}
- best = {}
- items.each do |key,item|
- best[key] = 0
- unless item == nil
- item["spec"].sort.each do |spec|
- unless specs.has_key?(spec[0])
- specs[spec[0]] = Hash.new()
- end
- specs[spec[0]][key] = spec[1]
- end
- end
- end
- specs.each do |spec|
- if spec_funct.has_key?(spec[0])
- function = spec_funct[spec[0]]
- case function
- when ">":
- best[max(spec[1])] += 1 if best.has_key?(max(spec[1]))
- when "<":
- best[min(spec[1])] += 1 if best.has_key?(min(spec[1]))
- end
- end
- end
- items.each do |key, item|
- puts "#{item["title"]}: #{best[key]}"
- end
- puts "-------------------"
- puts "Won: #{items[best.index(best.values.max)]["title"]}"
Add Comment
Please, Sign In to add comment