Man on War - само 80 процента #Python
Здравейте,
вече от няколко дена пробвам да реша и дебъгна тази задача, но нещо не достига явно.
От джъдж не мога да видя нищо.
Ето и самия код:
status_pirate_ship = [int(x) for x in input().split(">")]
status_warship = [int(x) for x in input().split(">")]
max_health_capacity = int(input())
stalemate = True
while True:
command = input().split(" ")
action = command[0]
if action == "Retire":
break
if action == "Fire":
index = int(command[1])
damage = int(command[2])
if index >= 0 and index < len(status_warship):
status_warship[index] -= damage
if status_warship[index] <= 0:
print("You won! The enemy ship has sunken.")
stalemate = False
break
if action == "Defend":
start_index = int(command[1])
end_index = int(command[2])
damage = int(command[3])
if start_index >= 0 and start_index < len(status_pirate_ship) and end_index >= 0 and end_index < len(status_pirate_ship):
ship_broken = False
for index in range(start_index, end_index + 1):
status_pirate_ship[index] -= damage
if status_pirate_ship[index] <= 0:
ship_broken = True
break
if ship_broken:
print("You lost! The pirate ship has sunken.")
stalemate = False
break
if action == "Repair":
index = int(command[1])
health = int(command[2])
if index >= 0 and index < len(status_pirate_ship):
if status_pirate_ship[index] + health <= max_health_capacity:
status_pirate_ship[index] += health
if action == "Status":
need_repair = max_health_capacity * 0.2
parts_pirate_ship = len([x for x in status_pirate_ship if x < need_repair])
print(f"{parts_pirate_ship} sections need repair.")
if stalemate:
sum_pirate_ship = sum(status_pirate_ship)
sum_warship = sum(status_warship)
print(f"Pirate ship status: {sum_pirate_ship}")
print(f"Warship status: {sum_warship}")
Супер си! Благодаря ти! Ще го погледна сега. :)
Ралица, успя ли? Чудя се, защо навсякъде индентацията ти не е 4 спейса?
Когато надвишава max_health, грешката ти е, че не прибавяш нищо, а то трябва да стане = max_health, просто не трябва да надвишава.
Ето и моя код: https://pastebin.com/7nwd3tya
Успех!
Да, успях. Колежката беше видяла какво съм пропуснала с условията с health ситуацията.
Просто грешно се е пестнал кода ми.
Индентацията си е добре, иначе няма как да мине 80 процента. :)
Благодаря все пак!