Написать класс Monster(Имя, Позиция, Задержка, Сила), определяющий поведение монстра в одномерной аркаде.

Написать также корутину game(монстры, начало_эпизода, конец_эпизода, эпоха), которая после каждого события конец_эпизода:

Работа game() заканчивается:

Корутина main() в тестах не меняется

   1 async def main(*specs):
   2     monsters = [Monster(*spec) for spec in specs]
   3     animate, freeze = asyncio.Barrier(len(monsters) + 1), asyncio.Barrier(len(monsters) + 1)
   4     squad = [asyncio.create_task(m.run(animate, freeze)) for m in monsters]
   5     result = await game(monsters, animate, freeze, 10000)
   6     _ = [m.cancel() for m in squad]
   7     return result
   8 
   9 print(asyncio.run(main(("Kano", 1, 1, 20), ("Sonya", 2, 2, 15), ("Liu Kang", 4, 3, 10))))
  10 print(asyncio.run(main(("Sonya", 2, 2, 15), ("Johnny Cage", 1, 3, 1))))
  11 print(asyncio.run(main(("Kano", 1, 1, 20), ("Sonya", 2, 2, 15), ("Liu Kang", 4, 3, 10), ("Kabal", 5, 1, 5))))
  12 print(asyncio.run(main(("Milena", 1, 1, 15), ("Kitana", 2, 2, 15))))

Liu Kang
All flee
Liu Kang, Kabal
All dead


CategoryHomework

LecturesCMC/PythonIntro2024/Homework_OneDArcade (последним исправлял пользователь FrBrGeorge 2024-12-15 18:35:27)