Just another day in the world of Minecraft, Steve is getting ready to start his next exciting project -- building a railway system!

![Alt text](http://static.planetminecraft.com/files/resource_media/screenshot/1506/2015-02-02_0156508603066.jpg)

But first, Steve needs to melt some iron ores in the furnace to get the main building blocks of rails -- iron ingots. ![Alt text](http://www.blocksandgold.com/media/catalog/product/cache/3/image/35x/cbcbef48e5e3bcce7c7ed908f20bc5b4/i/r/ironingot_icon32.png)

Each iron ingot takes 11 seconds* to produce. Steve needs a lot of them, and he has the following fuel options to add into the furnace: 

* Buckets of lava, each lasts 800 seconds* ![Alt text](http://www.minecraftguides.org/images/items/bucketL.gif)
* Blaze rod, each lasts 120 seconds ![Alt text](http://www.minecraftguides.org/images/items/blazerod.gif)
* Coals, each lasts 80 seconds ![Alt text](http://www.minecraftguides.org/images/items/coal.gif)
* Blocks of Wood, each lasts 15 seconds ![Alt text](http://www.minecraftguides.org/images/itemGifs/logs.gif)
* Sticks, each lasts 1 second* ![Alt text](http://www.minecraftguides.org/images/items/stick.gif)

In Ruby: 
Write a function `calc_fuel` that calculates the **minimum** amount of fuel needed to produce a certain number of iron ingots. This function should return a hash of the form `{:lava => 2, :blaze_rod => 1, :coal => 1, :wood => 0, :stick => 0}`
In JavaScript:
Write a function `calcFuel` that calculates the **minimum** amount of fuel needed to produce a certain number of iron ingots. This function should return an object of the form `{lava: 2, blazeRod: 1, coal: 1, wood: 0, stick: 0}`
In Python:
Write a function `calc_fuel` that calculates the **minimum** amount of fuel needed to produce a certain number of iron ingots. This function should return a dictionary of the form `{"lava": 2, "blaze rod": 1, "coal": 1, "wood": 0, "stick": 0}`

---
*fictional values

To all the Minecraft players out there: 
feel free to expand this series or let me know if you have any ideas related to Minecraft that can be turned into codewars puzzles. Some ideas I have that might potentially be turned into katas:

* distance traveled in real world vs. in Nether
* shortest path problems related to mining diamonds/gold/goodies that appears in different levels under ground
* growth of animal population from breeding
* redstone stuff?!

If you do end up expanding this series, please send me a link of your kata so I can check it out and include a link to your kata here :-)

* [Minecraft Series #1: Steve wants to build a beacon pyramid](https://www.codewars.com/kata/minecraft-series-number-1-steve-wants-to-build-a-beacon-pyramid/ruby)
* [Minecraft Series #3: Lava is amazing! ](https://www.codewars.com/kata/583a23d40cf946ec380002c2)
* [Minecraft Series #4: Lava is amazing, however...](https://www.codewars.com/kata/583a6b0b171f3a3c3f0003e3)

Difficulty: introductory

Starter code:

def calc_fuel(n):
	

Solutions:
t = ((800, "lava"), (120, "blaze rod"), (80, "coal"), (15, "wood"), (1, "stick"))


def calc_fuel(n):
    s, r = n * 11, {}
    for d, e in t:
        r[e], s = divmod(s, d)
    return r

def calc_fuel(n):
    time = n * 11
    lava, blaze = divmod(time, 800)
    blaze, coal = divmod(blaze, 120)
    coal, wood = divmod(coal, 80)
    wood, stick = divmod(wood, 15)
    
    return {'lava': lava, 'blaze rod': blaze, 'coal': coal, 'wood': wood, 'stick': stick}


def calc_fuel(n):
    # Start coding! You can do it!
    time = n * 11
    dict = {"lava": time // 800, "blaze rod": (time % 800) // 120, "coal": ((time % 800) % 120) // 80, "wood": (((time % 800) % 120) % 80) // 15, "stick": (((time % 800) % 120) % 80) % 15 }
    
    
    
    return dict

d = [
  (800, "lava"),
  (120, "blaze rod"),
  (80, "coal"),
  (15, "wood"),
  (1, "stick")
]

def calc_fuel(n):
    n *= 11
    r = {}
    for a, b in d:
        r[b] = n // a
        n %= a
    return r

def calc_fuel(n):
    dict={"lava": 0, "blaze rod": 0, "coal": 0, "wood": 0, "stick": 0 }
    time=n*11
    if time>=800:
        dict["lava"]=time//800
        time-=800*(time//800)
    if time>=120:
        dict["blaze rod"]=time//120
        time-=120*(time//120)
    if time>=80:
        dict["coal"]=time//80
        time-=80*(time//80)
    if time>=15:
        dict["wood"]=time//15
        time-=15*(time//15)
    dict["stick"]=time
    return dict

def calc_fuel(n):
    n *= 11
    values = {'lava': 800, 'blaze rod': 120, 'coal': 80, 'wood': 15, 'stick': 1}
    usage = {'lava': 0, 'blaze rod': 0, 'coal': 0, 'wood': 0, 'stick': 0}
    
    for fuel_source, duration in list(values.items()):
        if n // duration > 0:
            usage[fuel_source] = n // duration
            n -= n // duration * duration
    
    return usage


def calc_fuel(n):
    dic={'lava':0,'blaze rod':0,'coal':0,'wood':0,'stick':0}
    time=n*11
    poss=[800,120,80,15,1]
    i=0
    while time>0:
        while time-poss[i]>=0:
            time-=poss[i]
            if poss[i]==800:
                dic['lava']+=1
            elif poss[i]==120:
                dic['blaze rod']+=1
            elif poss[i]==80:
                dic['coal']+=1
            elif poss[i]==15:
                dic['wood']+=1
            elif poss[i]==1:
                dic['stick']+=1
        
        i+=1
        
    return dic
        
            
            
        
    
        
            
            
            
            
            
            
            
            
            
            


def calc_fuel(n):
    result = {}
    n *= 11
    for fuel, sec in ('lava', 800), ('blaze rod', 120), ('coal', 80), ('wood', 15), ('stick', 1):
        result[fuel], n = divmod(n, sec)
    return result

def calc_fuel(n):
    from math import floor
    # Start coding! You can do it!
    fuels = {"lava" : 800, "blaze rod" : 120, "coal" : 80, "wood" : 15, "stick" : 1}
    n *= 11
    result = {}
    for fuel, time in fuels.items():
        result[fuel], n = divmod(n, time)
    return result    

def calc_fuel(n):
    result={}
    wholeTime=n*11
    result["lava"]=wholeTime//800
    wholeTime-=800*result["lava"]
    result["blaze rod"]=wholeTime//120
    wholeTime-=120*result["blaze rod"]
    result["coal"]=wholeTime//80
    wholeTime-=80*result["coal"]
    result["wood"]=wholeTime//15
    wholeTime-=15*result["wood"]
    result["stick"]=wholeTime//1
    return result