Нужна помощь в создании системы обнаружения и табло для текстовой игры
Чтобы предварить это, я не хочу, чтобы это выглядело так, как будто я хочу быть обученным. В настоящее время я изо всех сил пытаюсь получить этот фрагмент кода таким, каким он должен быть, и единственная доступная помощь, которую я могу получить в данный момент, - это интернет. Конечно, если это неподходящее место для такого поста, не стесняйтесь снять его, я полностью понимаю :)
Я пытаюсь создать систему обнаружения и табло для текстовой игры с ограблением, в которой определенные контексты увеличивают обнаружение. Например, если стреляют из пистолета, это предупреждает охранников об увеличении обнаружения, однако если используется нож, ничего не происходит с уровнем обнаружения. В зависимости от уровня обнаружения, с которым пользователь завершает игру, они уходят с определенной суммой наличных денег.
В настоящее время у меня есть то, что код повторяет переменную "инвентарь", которая хранит элементы, которые пользователь подобрал вместе с собой. Когда пользователь использует товар, он больше не находится в инвентаре на тот срок, на который он используется. Затем код оценивает условие, чтобы проверить, находится ли товар на складе в этот момент. Если это не так, он добавляет "дискретное" значение используемого элемента к переменной "усмотрение" с предопределенным значением. Если "усмотрение" падает ниже определенного значения, он вызывает функцию " try_gain ()", которая предлагает пользователю играть снова.
Вот код, который у меня есть до сих пор. Это не то, на что я согласился, так что если у вас есть какие-либо советы по улучшению кода, это будет иметь большое значение:
try_again(): user_input = input('Would you like to play again') if 'yes'.lower() in user_input: main() else: pass def discretion(items): discretion = 0 inventory = [] for x,a in items.items(): if x not in inventory: discretion += a['discrete'] else: pass if discretion < 0: try_gain() return (f'Your detection level is {discretion}') Here are a few sample dictionaries: hand_gun = {'id':'handgun','discrete':20} rifle_ = {'id':'rifle','discrete':50} items = {'handgun':hand_gun,'rifle':rifle_}
Что я уже пробовал:
До сих пор я только и делал, что перебирал предметы и проверял, нет ли их в инвентаре. Если это не так (например, когда используется пистолет), то производится изменение на усмотрение в соответствии с дискретным значением, хранящимся конкретным элементом в его словаре. Проблема, с которой я столкнулся, заключается в том, что "инвентарь" должен быть (как и в другом коде игры) глобальной переменной, а не заключаться в этой функции. Кроме того, я изо всех сил пытаюсь установить решение о постоянном представлении статуса "обнаружения" игрока на протяжении всей игры. Конечно, не на все вопросы нужно отвечать, но любая помощь будет иметь большое значение :)