Minecraftをプレイしたことがある場合は、次の方が理にかなっています。まだまだ多くの方がいらっしゃるので、できる限り説明させていただきます。
MinecraftレシピのフラットファイルからMinecraftアイテムを作成する手順を見つけることができる再帰関数を作成しようとしています。これは本当に困惑しています。
フラットファイルはちょっと長いので、この要点に含めました。
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}
だから問題は、どうすればいいのかということです。
私は人々にあなたのために仕事をするように頼むことはここで眉をひそめていることを知っています、それであなたがこれが私のためにコーディングをしているだけであなたに少し近すぎると感じるなら、ちょうどそう言ってください。