Просто чтобы попрактиковаться в Python, я пытаюсь создать простую игру. У меня возникла проблема с созданием функции, которая будет брать ресурс из банка и добавлять его в запас игрока, и наоборот.
Мне удалось добиться успеха, если я жестко закодировал все, что работает, но это не СУХОЙ и требует много кода только для простого сложения / вычитания. Ниже приведен код, который у меня есть только для двух ресурсов, но есть 10-15 ресурсов, которые будут нуждаться в такой же обработке.
Примечание: банк - это ссылка на модуль, а не экземпляр объекта, но pэто вызов экземпляра класса Player.
def transfer_resource(receive_or_send, resource_name, qty, player_instance):
if receive_or_send == "receive":
if resource_name == "yellow_cake":
bank.yellow_cake -= qty
player_instance.yellow_cake += qty
elif resource_name == "dollars":
bank.dollars -= qty
player_instance.dollars += qty
elif receive_or_send == "send":
if resource_name == "yellow_cake":
player_instance.yellow_cake -= qty
bank.yellow_cake += qty
elif resource_name == "dollars":
player_instance.yellow_cake -= qty
bank.yellow_cake += qty
С вызовом функции, подобным этому:
transfer_resource("receive", "yellow_cake", 10, p)
было бы хорошо, если бы я мог сделать что-то вроде этого:
def transfer_resource(receive_from, send_to, resource, qty):
receive_from.resource -= qty
send_to.resource += qty
с вызовом функции вроде:
transfer_resource(bank, p, yellow_cake, 10)
Есть идеи? Я новичок, поэтому любая помощь приветствуется