Advertisement
nq1s788

woodman

Feb 16th, 2024
921
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.65 KB | None | 0 0
  1. from random import choice
  2.  
  3.  
  4. class TinWoodman:
  5.     wood_data = {'Молодая сосна': {'blows': 1, 'oil': 10, 'income': 2},
  6.                  'Ель': {'blows': 2, 'oil': 7.5, 'income': 3},
  7.                  'Кедр': {'blows': 3, 'oil': 6, 'income': 4},
  8.                  'Дуб': {'blows': 5, 'oil': 8, 'income': 10}}
  9.     oil = [100, 0]
  10.     overall_wood = 0
  11.     wood_planks = 0
  12.     tree_health = None
  13.     cur_tree = None
  14.     die = False
  15.     main_script = "Выберите действие:\n1 - поиск дерева;\n2 - пополнить масло;\n3 - статистика;\n4 - вернуться домой.\n"
  16.     tree_script = "Выберите действие:\n1 - срубить дерево;\n2 - пополнить масло;\n3 - статистика;\n4 - вернуться домой.\n"
  17.  
  18.     def main_work(self):
  19.         request = 1
  20.         print('Дровосек начинает работу в лесу')
  21.         while request != 4 and not self.die:
  22.             if self.cur_tree == None:
  23.                 print(self.main_script)
  24.             else:
  25.                 print(self.tree_script)
  26.             request = int(input('Ответ:'))
  27.             if self.cur_tree == None:
  28.                 if request == 1:
  29.                     self.search_tree()
  30.                 elif request == 2:
  31.                     self.fill_oil()
  32.                 elif request == 3:
  33.                     self.stat()
  34.             else:
  35.                 if request == 1:
  36.                     self.cut_tree()
  37.                 elif request == 2:
  38.                     self.fill_oil()
  39.                 elif request == 3:
  40.                     self.stat()
  41.         if self.die:
  42.             print('О нет! Масло закончилось!')
  43.             print('Дровосек заржавел, игра окончена.')
  44.             print()
  45.             self.stat()
  46.         else:
  47.             self.end_work()
  48.  
  49.     def search_tree(self):
  50.         self.cur_tree = choice(list(self.wood_data.keys()))
  51.         self.tree_health = 0
  52.         print('Дровосек находит', self.cur_tree + '!')
  53.  
  54.     def cut_tree(self):
  55.         self.tree_health += 1
  56.         self.lower_oil()
  57.         print('Дровосек делает удар по', self.cur_tree,
  58.               '(' + str(self.tree_health) + '/' + str(self.wood_data[self.cur_tree]['blows']) + ')')
  59.         print('Масло', '(' + str(self.oil[0]) + '/100)')
  60.         if self.die:
  61.             return
  62.         if self.tree_health == self.wood_data[self.cur_tree]['blows']:
  63.             self.overall_wood += self.wood_data[self.cur_tree]['income']
  64.             self.wood_planks += 1
  65.             print('Дерево упало, дровосек получил', self.wood_data[self.cur_tree]['income'], 'доски.')
  66.             self.cur_tree = None
  67.  
  68.     def lower_oil(self):
  69.         self.oil[0] -= self.wood_data[self.cur_tree]['oil']
  70.         if self.oil[0] < 0:
  71.             self.die = True
  72.  
  73.     def fill_oil(self):
  74.         print('Дровосек достает маслёнку')
  75.         self.oil[1] += 100 - self.oil[0]
  76.         self.oil[0] = 100
  77.         print('Масло 100/100')
  78.  
  79.     def stat(self):
  80.         print('Статистика:')
  81.         print('Масло:', str(self.oil[0]) + '/100')
  82.         print('Израсходовано всего масла:', self.oil[1])
  83.         print('Доски:', self.overall_wood)
  84.         print('Срублено деревьев:', self.wood_planks)
  85.  
  86.     def end_work(self):
  87.         print('После тяжелого трудового дня дровосек возвращается домой')
  88.         self.stat()
  89.  
  90.  
  91. tw = TinWoodman()
  92. tw.main_work()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement