如果你曾经玩过《我的世界》,下面的内容将会更有意义。由于你们中的许多人还没有,我将尽力解释它
我正在尝试编写一个递归函数,它可以找到从 Minecraft 食谱的平面文件中制作任何 Minecraft 物品的步骤。这个实在是让我难住了。
平面文件有点长,所以我将其包含在this https://gist.github.com/1989842 gist.
def getRecipeChain(item, quantity=1):
#magic recursive stuffs go here
所以基本上我需要查找第一个食谱,然后查找第一个食谱的所有组件的食谱,依此类推,直到找到没有食谱的项目。每次我需要将配方附加到列表中时,我都会得到一种关于制作物品的顺序的指令集。
这是我现在拥有的功能(不起作用的功能)
def getRecipeChain(name, quantity=1):
chain = []
def getRecipe(name1, quantity1=1):
if name1 in recipes:
for item in recipes[name1]["ingredients"]["input"]:
if item in recipes:
getRecipe(item, quantity1)
else:
chain.append(item)
getRecipe(name, quantity)
return chain
这是我想要的理想输出。它是一个字典,其中存储了商品名称和数量。
>>> getRecipeChain("solar_panel", 1):
{"insulated_copper_cable":13, "electronic_circuit":2, "re_battery":1, "furnace":1, "machine":1, "generator":1, "solar_panel":1}
那么问题是,我该怎么做?
我知道要求别人为你工作在这里会让人皱眉,所以如果你觉得这有点太接近你只是为我做编码,就这么说吧。