Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import choices
- class Tool:
- rarity = 'Обычная'
- durability = 100
- ratio = 2
- hardness = [('Обычная', 2), ('Редкая', 1.25), ('Легендарная', 0.65)]
- probability = [50, 35, 15]
- def get_probability(self):
- for i in range(len(self.hardness)):
- if self.hardness[i][0] == self.rarity:
- return self.probability[i]
- def get_new_tool(self):
- self.rarity, self.ratio = choices(self.hardness, weights=self.probability)[0]
- self.durability = 100
- class Pickaxe(Tool):
- metal_hardness = 25
- def mine_metal(self):
- self.durability -= self.ratio * self.metal_hardness
- class Shovel(Tool):
- dirt_hardness = 15
- def clear_dirt(self):
- self.durability -= self.ratio * self.dirt_hardness
- def choose_option():
- print('Выберите действие:')
- print('1. добывать киркой;')
- print('2. копать лопатой;')
- print('3. статистика;')
- print('4. завершить игру.')
- print()
- return input('Ответ: ')
- def start():
- events = (['жила', 'завал'], [20, 80])
- metal = 0
- dirt = 0
- pickaxe = Pickaxe()
- shovel = Shovel()
- print('Вы начинаете игру')
- print('Инструменты:')
- print('- "' + pickaxe.rarity + '" кирка', str(pickaxe.durability) + '/100')
- print('- "' + shovel.rarity + '" лопата', str(shovel.durability) + '/100')
- print()
- event = choices(events[0], weights=events[1])[0]
- print('Герою попадается', event + '!')
- request = choose_option()
- while request != '4':
- if request == '1':
- if event == 'завал':
- print('Завалы нельзя расчищать киркой!')
- request = choose_option()
- continue
- pickaxe.mine_metal()
- if pickaxe.durability < 0:
- print('Кирка не выдержала, сломалась, металл не добыт')
- print('"' + pickaxe.rarity + '" кирка разрушается!')
- pickaxe.get_new_tool()
- print('Герой достает из сумки "' + pickaxe.rarity + '" кирка с вероятностью', str(pickaxe.get_probability()) + '%')
- elif pickaxe.durability == 0:
- metal += 1
- print('Герой добывает 1 металл, Кирка', str(pickaxe.durability) + '/100')
- print('"' + pickaxe.rarity + '" кирка разрушается!')
- pickaxe.get_new_tool()
- print('Герой достает из сумки "' + pickaxe.rarity + '" кирка с вероятностью',
- str(pickaxe.get_probability()) + '%')
- event = choices(events[0], weights=events[1])[0]
- print('Герою попадается', event + '!')
- else:
- metal += 1
- print('Герой добывает 1 металл, Кирка', str(pickaxe.durability) + '/100')
- event = choices(events[0], weights=events[1])[0]
- print('Герою попадается', event + '!')
- elif request == '2':
- if event == 'жила':
- print('Металлы нельзя добывать лопатой!')
- request = choose_option()
- continue
- shovel.clear_dirt()
- if shovel.durability < 0:
- print('Лопата не выдержала, сломалась, грязь не добыта')
- print('"' + shovel.rarity + '" лопата разрушается!')
- shovel.get_new_tool()
- print('Герой достает из сумки "' + shovel.rarity + '" лопата с вероятностью', str(shovel.get_probability()) + '%')
- elif shovel.durability == 0:
- dirt += 1
- print('Герой добывает 1 грязь, Лопата', str(shovel.durability) + '/100')
- print('"' + shovel.rarity + '" лопата разрушается!')
- shovel.get_new_tool()
- print('Герой достает из сумки "' + shovel.rarity + '" лопата с вероятностью',
- str(shovel.get_probability()) + '%')
- event = choices(events[0], weights=events[1])[0]
- print('Герою попадается', event + '!')
- else:
- dirt += 1
- print('Герой добывает 1 грязь, Лопата', str(shovel.durability) + '/100')
- event = choices(events[0], weights=events[1])[0]
- print('Герою попадается', event + '!')
- elif request == '3':
- print('- "' + pickaxe.rarity + '" кирка', str(pickaxe.durability) + '/100')
- print('- "' + shovel.rarity + '" лопата', str(shovel.durability) + '/100')
- print('Добыто:')
- print('Металл:', metal)
- print('Грязь:', dirt)
- else:
- print('Неверный запрос')
- request = choose_option()
- start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement