Следующее будет иметь больше смысла, если вы когда-либо играли в майнкрафт. Поскольку многие из вас этого не сделали, я постараюсь объяснить это как можно лучше
Я пытаюсь написать рекурсивную функцию, которая может найти шаги для создания любого предмета майнкрафта из набора файлов рецептов майнкрафта. Это меня действительно поставило в тупик.
Плоский файл довольно длинный, поэтому я включил его в этот список.
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}
Итак, вопрос в том, как мне это сделать?
Я знаю, что вопрос о том, чтобы люди работали для вас, нахмурился, поэтому, если вы чувствуете, что это слишком близко к вам, просто пишите мне код, просто скажите.