All pastes #897861 Raw Edit

Anonymous

public ruby v1 · immutable
·published 2008-02-09 22:02 UTC
rendered paste body
#!/usr/bin/env ruby# Program named: wfcalc# Create by Kim "Hagbarddenstore" Johansson# 2008-02-09# Licensed under BSD license.# Do whatever you want with this program.# Check if we have valid amount of arguments.if ARGV.size < 3	puts "wfcalc {type} {grade} {amount}"	exit 1end# The five types we can calculate and their grades.TYPES = {	"Iron"=>["Raw","Depleted","Normal","Pure","Refined",],	"Silicon"=>["Raw","Depleted","Pure","Good","Refined"],	"Iridium"=>["Raw","Depleted","Pure","Good","Refined"],	"Titanium"=>["Raw","Depleted","Pure","Good","Refined"],	"Stethan"=>["Pure"]}# The objects with the data we want.type = ARGV[0].capitalizegrade = ARGV[1].capitalizeamount = ARGV[2].to_i# Check if we have greater amount than 0.if false == ( amount > 0 )	puts "Amount must be greater than 0."	exit 1end# Check if we have a valid type.if TYPES.include?(type) == false	puts "Valid types are: #{TYPES.keys.join(' ')}"	exit 1end# Check if we have a valid grade.if TYPES[type].include?(grade) == false	puts "Valid grades for #{type} are: #{TYPES[type].join(' ')}"	exit 1end# If Stethan, we only have one option.if type == "Stethan"	puts "To create #{amount}x Stethan you need:"	puts "#{amount}x Iron (Depleted)"	puts "#{amount}x Silicon (Depleted)"	puts "#{amount}x Iridium (Depleted)"	puts "#{amount}x Titanium (Depleted)"end# Loop through each grade and print out# how many you need of each type# to get to the top type that you want.i = 0TYPES[type].each do |g|	if g == grade		i.times { amount *= 10 }		i.times do |j|			str = "You need #{amount}x #{type} (#{TYPES[type][j]})"			str += " to create #{amount/=10}x #{type} (#{TYPES[type][j+1]})"			puts str		end		break	else		i += 1	endend