Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2021
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.73 KB | None | 0 0
  1. def check_index(collection: list, index : int):
  2.     if 0 <= index < len(collection):
  3.         return True
  4.  
  5.     return False
  6.  
  7. def check_at_shoot(collection: list, target_index : int, power : int):
  8.     if check_index(collection, target_index):
  9.         collection[target_index] -= power
  10.  
  11.         if collection[target_index] <=0:
  12.             collection.pop(target_index)
  13.  
  14.     return collection
  15.  
  16. def add_at_shoot(collection: list, target_index: int, power: int):
  17.     if not check_index(collection, target_index):
  18.         print("Invalid placement!")
  19.  
  20.         return collection
  21.  
  22.     collection.insert(target_index, power)
  23.  
  24.     return collection
  25.  
  26. def strike_at_shoot(collection: list, target_index: int, power: int):
  27.     right_side = target_index + power
  28.     left_side = target_index - power
  29.  
  30.     if check_index(collection, target_index) and \
  31.             check_index(collection,right_side) and \
  32.             check_index(collection, left_side):
  33.         for i in range(left_side, right_side+1):
  34.             collection.pop(left_side)
  35.     else:
  36.         print("Strike missed!")
  37.  
  38.     return collection
  39. old_number = input().split()
  40. numbers =[int(el) for el in old_number]
  41. command = input()
  42.  
  43.  
  44. while command != "End":
  45.  
  46.     cmd_arg = command.split()
  47.  
  48.     cmd_type = cmd_arg[0]
  49.     cmd_index = int(cmd_arg[1])
  50.     cmd_power = int(cmd_arg[2])
  51.  
  52.     if cmd_type == "Shoot":
  53.       numbers =  check_at_shoot(numbers,cmd_index, cmd_power)
  54.     elif cmd_type == "Add":
  55.        numbers =  add_at_shoot(numbers, cmd_index, cmd_power)
  56.     elif cmd_type == "Strike":
  57.         numbers = strike_at_shoot(numbers,cmd_index, cmd_power)
  58.  
  59.     command = input()
  60. new_number = [str(num) for num in numbers]
  61. print("|".join(new_number))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement