flash_karel.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from graphics import Canvas
  2. from karel_asset import *
  3. import random
  4. from time import sleep
  5. import asyncio
  6. # Constants
  7. CANVAS_WIDTH = 400
  8. CANVAS_HEIGHT = 400
  9. async def flash_karel(canvas, delay:int=0):
  10. await asyncio.sleep(delay)
  11. karel = generate_random_karel(canvas)
  12. await asyncio.sleep(4)
  13. erase_asset(karel)
  14. async def main():
  15. canvas = Canvas(CANVAS_WIDTH, CANVAS_HEIGHT,)
  16. while True:
  17. background = generate_random_background(canvas)
  18. sleep(0.5)
  19. # Multple simultanious jobs
  20. await asyncio.gather(
  21. flash_karel(canvas, 0),
  22. flash_karel(canvas, 1),
  23. flash_karel(canvas, 2),
  24. flash_karel(canvas, 3),
  25. flash_karel(canvas, 4),
  26. flash_karel(canvas, 5),
  27. flash_karel(canvas, 6),
  28. flash_karel(canvas, 7),
  29. flash_karel(canvas, 8),
  30. flash_karel(canvas, 9),
  31. )
  32. sleep(0.5)
  33. canvas.delete(background)
  34. return canvas
  35. if __name__ == '__main__':
  36. #asyncio.run(main())
  37. #await main()