SHARE
TWEET

Untitled

Oaoammm Jul 12th, 2019 77 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import random
  2.  
  3. weapons = {'руки': (10, 15), 'ствол': (20, 30), 'палочка-выручалочка': (30, 50), 'горсть монет': (6, 9)}
  4.  
  5. def ver():
  6.     return random.random() >= 0.5
  7.  
  8. class Person():
  9.     def __init__(self, name):
  10.         self._name = name
  11.         self._Health = random.randint(80, 100)
  12.         self._MHealth = 100
  13.         self._live = True
  14.         self._wins = 0
  15.         self._money = random.randint(1, 100)
  16.         self._weap = 'руки'
  17.         self._damage = weapons[self._weap]
  18.     def get_status(self):
  19.         print('Зовут его', self._name)
  20.         print('Здоровье -', str(self._Health) + '/' + str(self._MHealth))
  21.         print('Жив' if self._live else 'Сдох')
  22.         print('Победил', self._wins, 'раз')
  23.         print('Имеет', self._money, 'золотых')
  24.         print('Оружие -', self._weap)
  25.         print('Урон -', self._damage)
  26.     def get_health(self):
  27.         return self._Health
  28.     def set_money(self):
  29.         self._money += 100
  30.     def set_wins(self):
  31.         self._wins += 1
  32.     def get_wins(self):
  33.         return self._wins
  34.     def set_health(self, n):
  35.         if n in range(1, self._MHealth + 1):
  36.             self._Health = n
  37.         elif n > self._MHealth:
  38.             self._Health = self._MHealth
  39.         else:
  40.             self._Health = 0
  41.             self.die()
  42.     health_status = property(get_health, set_health)
  43.     def hit(self, enemy):
  44.         damage = random.randint(self._damage[0], self._damage[1] + 1)
  45.         print(self._name, 'ударил с силой', damage, 'по', str(enemy._name) + ', применил -', self._weap)
  46.         enemy._Health -= damage
  47.         if enemy._Health < 0:
  48.             enemy._Health = 0
  49.         print('У', enemy._name, 'осталось', str(enemy._Health) + '/' + str(enemy._MHealth) + ' HP')
  50.     def hit_jew(self, enemy):
  51.         damage = random.randint(self._damage[0], self._damage[1] + 1)
  52.         print(self._name, 'ударил с силой', damage, 'по', (enemy._name), 'горстью монет')
  53.         enemy._Health -= damage
  54.         if enemy._Health < 0:
  55.             enemy._Health = 0
  56.         print('У', enemy._name, 'осталось', str(enemy._Health) + '/' + str(enemy._MHealth) + ' HP')
  57.         self._money -= damage
  58.         if self._money <= 0 and enemy.get_health != 0:
  59.             self._money = 0
  60.             print('Деньги кончились')
  61.             self._Health = 0
  62.             print('Вас все равно добьют')
  63.         else:
  64.             print('А у нашего героя осталось', self._money, 'золотых')
  65.     @property
  66.     def get_name(self):
  67.         return self._name
  68.     @property
  69.     def wins_count(self):
  70.         return self._wins
  71.     @property
  72.     def isAlive(self):
  73.         return self._live
  74.     def die(self):
  75.         print(self._name, 'сдох')
  76.         self._live = False
  77.     def battle(self, enemy):
  78.         print('На ринг выходит', a.get_name, 'и', b.get_name)
  79.         while a.get_health():
  80.             if ver():
  81.                 a.hit(b) #   a.hit_jew(b) - для еврея
  82.                 if b.get_health() <= 0:
  83.                     b.die()
  84.                     break
  85.             else:
  86.                 b.hit(a)
  87.         if a.get_health():
  88.             print(a.get_name, 'ПОБЕДИЛ', b.get_name)
  89.             a.set_wins()
  90.             a.set_money()
  91.         else:
  92.             a.die()
  93.  
  94.  
  95. class Tank(Person):
  96.     def __init__(self, name):
  97.         super().__init__(name)
  98.         self._Health = random.randint(150, 200)
  99.         self._MHealth = 200
  100.         self._money = random.randint(1, 100)
  101.         self._weap =  'ствол'
  102.         self._damage = weapons[self._weap]
  103. class Koldun(Person):
  104.     def __init__(self, name):
  105.         super().__init__(name)
  106.         self._Health = random.randint(10000,15000)
  107.         self._MHealth = 15000
  108.         self._money = random.randint(50, 150)
  109.         self._weap = 'палочка-выручалочка'
  110.         self._damage = weapons[self._weap]
  111. class Jew(Person):
  112.     def __init__(self, name):
  113.         super().__init__(name)
  114.         self._Health = random.randint(200,700)
  115.         self._MHealth = 699
  116.         self._money = random.randint(5000, 20000)
  117.         self._weap = 'горсть монет'
  118.         self._damage = weapons[self._weap]
  119.  
  120. a = Koldun('Я')
  121.  
  122. while a.isAlive:
  123.     b = Tank('Bot '+str(random.randint(100,1000)))
  124.     a.battle(b)
  125. print(a.get_name, 'победил', a.get_wins(), 'раз(а)')
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top