Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.13 KB | None | 0 0
  1. import datetime, time
  2.  
  3. class Bazooka(object):
  4.     reload = 3
  5.     damage = 9999
  6.     ammo = 4
  7.     last_shot = time.time() - reload
  8.  
  9.     def fire(self):
  10.         if self.ammo:
  11.             if time.time() >= self.last_shot + self.reload:
  12.                 self.ammo -= 1
  13.                 self.last_shot = time.time()
  14.             else:
  15.                 time.sleep(self.last_shot + self.reload - time.time())
  16.                 self.ammo -= 1
  17.                 self.last_shot = time.time()
  18.         else:
  19.             print('No missiles left!')
  20.  
  21.     def charge(self):
  22.         self.ammo = 4
  23. class Truck(object):
  24.     speed = 100
  25.     fuel = 500
  26.     economy = 4
  27.     mileage = 0
  28.  
  29.     def drive(self, distance):
  30.         if self.fuel / self.economy >= distance:
  31.             self.fuel -= self.economy * distance
  32.             self.mileage += distance
  33.         else:
  34.             return 'Need {} more fuel to cross given distance'.format(distance - self.fuel / self.economy)
  35.  
  36.     @property
  37.     def max_distance(self):
  38.         return self.fuel / self.economy
  39.  
  40.  
  41. class Tank(Bazooka, Truck):
  42.     shots = 0
  43.     damage_done = 0
  44.     def fire(self):
  45.         super().fire()
  46.         if self.ammo:
  47.             self.shots += 1
  48.             self.damage_done += self.damage
  49.  
  50.  
  51. little_tank = Tank()
  52.  
  53. little_tank.drive(little_tank.max_distance / 2)
  54. print('The tank crossed {} miles and {} fuel left'.format(little_tank.mileage, little_tank.fuel))
  55. little_tank.fire()
  56. print('The tank shot {shots} time(s) and did {damage} damage, so {ammo} missiles left.'.format(ammo=little_tank.ammo, damage=little_tank.damage_done, shots=little_tank.shots))
  57. little_tank.drive(Tank().max_distance / 4)
  58. print('The tank crossed {} miles and {} fuel left'.format(little_tank.mileage, little_tank.fuel))
  59. little_tank.fire()
  60. print('The tank shot {shots} time(s) and did {damage} damage, so {ammo} missiles left.'.format(ammo=little_tank.ammo, damage=little_tank.damage_done, shots=little_tank.shots))
  61. little_tank.fire()
  62. print('The tank shot {shots} time(s) and did {damage} damage, so {ammo} missiles left.'.format(ammo=little_tank.ammo, damage=little_tank.damage_done, shots=little_tank.shots))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement