| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- from graphics import Canvas
- from karel_asset import * # https://git.h0v1n8.nl/Stanford/karel_asset
- from time import sleep
- Constants
- CANVAS_WIDTH = 420
- CANVAS_HEIGHT = 270
- canvas = Canvas(CANVAS_WIDTH, CANVAS_HEIGHT)
- def main():
- background = canvas.create_rectangle(
- 0,
- 0,
- CANVAS_WIDTH,
- CANVAS_HEIGHT,
- "grey",
- "black"
- )
- while True: # Infinite loop
- # Draw Western quadrant
- karel_east = draw_karel(canvas, 35, 35, colour="random", background="random")
- karel_east_mirrored = draw_karel(canvas, 85, 35, orientation="east-flipped", colour="random", background="random")
- karel_west = draw_karel(canvas, 135, 35, orientation="west", colour="random", background="random")
- karel_west_mirrored = draw_karel(canvas, 185, 35, orientation="west-flipped", colour="random", background="random")
- karel_north = draw_karel(canvas, 35, 85, orientation="north", colour="random", background="random")
- karel_north_mirrored = draw_karel(canvas, 85, 85, orientation="north-flipped", colour="random", background="random")
- karel_south = draw_karel(canvas, 135, 85, orientation="south", colour="random", background="random")
- karel_south_mirored = draw_karel(canvas, 185, 85, orientation="south-flipped", colour="random", background="random")
- karel_east2 = draw_karel(canvas, 35, 135, colour="random", background="random")
- karel_east2_mirrored = draw_karel(canvas, 85, 135, orientation="east-flipped", colour="random", background="random")
- karel_west2 = draw_karel(canvas, 135, 135, orientation="west", colour="random", background="random")
- karel_west_mirrored2 = draw_karel(canvas, 185, 135, orientation="west-flipped", colour="random", background="random")
- karel_north2 = draw_karel(canvas, 35, 185, orientation="north", colour="random", background="random")
- karel_north_mirrored2 = draw_karel(canvas, 85, 185, orientation="north-flipped", colour="random", background="random")
- karel_south2 = draw_karel(canvas, 135, 185, orientation="south", colour="random", background="random")
- karel_south_mirored2 = draw_karel(canvas, 185, 185, orientation="south-flipped", colour="random", background="random")
- karel_east3 = draw_karel(canvas, 35, 235, colour="random", background="random")
- karel_east_mirrored3 = draw_karel(canvas, 85, 235, orientation="east-flipped", colour="random", background="random")
- karel_west3 = draw_karel(canvas, 135, 235, orientation="west", colour="random", background="random")
- karel_west_mirrored3 = draw_karel(canvas, 185, 235, orientation="west-flipped", colour="random", background="random")
-
- # Wait one second
- sleep(1)
-
- # Draw Eastern quadrant
- karel_east4 = draw_karel(canvas, 235, 35, colour="random", background="random")
- karel_east_mirrored4 = draw_karel(canvas, 285, 35, orientation="east-flipped", colour="random", background="random")
- karel_west4 = draw_karel(canvas, 335, 35, orientation="west", colour="random", background="random")
- karel_west_mirrored4 = draw_karel(canvas, 385, 35, orientation="west-flipped", colour="random", background="random")
- karel_north4 = draw_karel(canvas, 235, 85, orientation="north", colour="random", background="random")
- karel_north_mirrored4 = draw_karel(canvas, 285, 85, orientation="north-flipped", colour="random", background="random")
- karel_south4 = draw_karel(canvas, 335, 85, orientation="south", colour="random", background="random")
- karel_south_mirored4 = draw_karel(canvas, 385, 85, orientation="south-flipped", colour="random", background="random")
- karel_east5 = draw_karel(canvas, 235, 135, colour="random", background="random")
- karel_east5_mirrored = draw_karel(canvas, 285, 135, orientation="east-flipped", colour="random", background="random")
- karel_west5 = draw_karel(canvas, 335, 135, orientation="west", colour="random", background="random")
- karel_west_mirrored5 = draw_karel(canvas, 385, 135, orientation="west-flipped", colour="random", background="random")
- karel_north5 = draw_karel(canvas, 235, 185, orientation="north", colour="random", background="random")
- karel_north_mirrored5 = draw_karel(canvas, 285, 185, orientation="north-flipped", colour="random", background="random")
- karel_south5 = draw_karel(canvas, 335, 185, orientation="south", colour="random", background="random")
- karel_south_mirored5 = draw_karel(canvas, 385, 185, orientation="south-flipped", colour="random", background="random")
- karel_east6 = draw_karel(canvas, 235, 235, background="pink")
- karel_east_mirrored6 = draw_karel(canvas, 285, 235, orientation="east-flipped", colour="random", background="random")
- karel_west6 = draw_karel(canvas, 335, 235, orientation="west", colour="random", background="random")
- karel_west_mirrored6 = draw_karel(canvas, 385, 235, orientation="west-flipped", colour="random", background="random")
-
- # Wait one second
- sleep(1)
-
- big_karel_east = draw_karel(canvas, 110, 135, 200)
-
- # Wait one second
- sleep(1)
-
- big_karel_west_flipped = draw_karel(canvas, 310, 135, 200, orientation="west-flipped", colour="white", transparent=True)
-
- # Wait one second
- sleep(1)
- # Slide Karels out of the canvas
- for i in range(int(CANVAS_WIDTH / 5)):
- karel_east = orientation_move_asset(karel_east, "forward", 5)
- karel_east_mirrored = orientation_move_asset(karel_east_mirrored, "forward", 5)
- karel_west = orientation_move_asset(karel_west, "forward", 5)
- karel_west_mirrored = orientation_move_asset(karel_west_mirrored, "forward", 5)
- karel_north = orientation_move_asset(karel_north, "forward", 5)
- karel_north_mirrored = orientation_move_asset(karel_north_mirrored, "forward", 5)
- karel_south = orientation_move_asset(karel_south, "forward", 5)
- karel_south_mirored = orientation_move_asset(karel_south_mirored, "forward", 5)
- karel_east2 = orientation_move_asset(karel_east2, "forward", 5)
- karel_east2_mirrored = orientation_move_asset(karel_east2_mirrored, "forward", 5)
- karel_west2 = orientation_move_asset(karel_west2, "forward", 5)
- karel_west_mirrored2 = orientation_move_asset(karel_west_mirrored2, "forward", 5)
- karel_north2 = orientation_move_asset(karel_north2, "forward", 5)
- karel_north_mirrored2 = orientation_move_asset(karel_north_mirrored2, "forward", 5)
- karel_south2 = orientation_move_asset(karel_south2, "forward", 5)
- karel_south_mirored2 = orientation_move_asset(karel_south_mirored2, "forward", 5)
- karel_east3 = orientation_move_asset(karel_east3, "forward", 5)
- karel_east_mirrored3 = orientation_move_asset(karel_east_mirrored3, "forward", 5)
- karel_west3 = orientation_move_asset(karel_west3, "forward", 5)
- karel_west_mirrored3 = orientation_move_asset(karel_west_mirrored3, "forward", 5)
- karel_east4 = orientation_move_asset(karel_east4, "forward", 5)
- karel_east_mirrored4 = orientation_move_asset(karel_east_mirrored4, "forward", 5)
- karel_west4 = orientation_move_asset(karel_west4, "forward", 5)
- karel_west_mirrored4 = orientation_move_asset(karel_west_mirrored4, "forward", 5)
- karel_north4 = orientation_move_asset(karel_north4, "forward", 5)
- karel_north_mirrored4 = orientation_move_asset(karel_north_mirrored4, "forward", 5)
- karel_south4 = orientation_move_asset(karel_south4, "forward", 5)
- karel_south_mirored4 = orientation_move_asset(karel_south_mirored4, "forward", 5)
- karel_east5 = orientation_move_asset(karel_east5, "forward", 5)
- karel_east5_mirrored = orientation_move_asset(karel_east5_mirrored, "forward", 5)
- karel_west5 = orientation_move_asset(karel_west5, "forward", 5)
- karel_west_mirrored5 = orientation_move_asset(karel_west_mirrored5, "forward", 5)
- karel_north5 = orientation_move_asset(karel_north5, "forward", 5)
- karel_north_mirrored5 = orientation_move_asset(karel_north_mirrored5, "forward", 5)
- karel_south5 = orientation_move_asset(karel_south5, "forward", 5)
- karel_south_mirored5 = orientation_move_asset(karel_south_mirored5, "forward", 5)
- karel_east6 = orientation_move_asset(karel_east6, "forward", 5)
- karel_east_mirrored6 = orientation_move_asset(karel_east_mirrored6, "forward", 5)
- karel_west6 = orientation_move_asset(karel_west6, "forward", 5)
- karel_west_mirrored6 = orientation_move_asset(karel_west_mirrored6, "forward", 5)
- # Wait a hundreth of a second
- sleep(0.01)
- # Erase Karels
- erase_asset(karel_east)
- erase_asset(karel_east_mirrored)
- erase_asset(karel_west)
- erase_asset(karel_west_mirrored)
- erase_asset(karel_north)
- erase_asset(karel_north_mirrored)
- erase_asset(karel_south)
- erase_asset(karel_south_mirored)
- erase_asset(karel_east2)
- erase_asset(karel_east2_mirrored)
- erase_asset(karel_west2)
- erase_asset(karel_west_mirrored2)
- erase_asset(karel_north2)
- erase_asset(karel_north_mirrored2)
- erase_asset(karel_south2)
- erase_asset(karel_south_mirored2)
- erase_asset(karel_east3)
- erase_asset(karel_east_mirrored3)
- erase_asset(karel_west3)
- erase_asset(karel_west_mirrored3)
- erase_asset(karel_east4)
- erase_asset(karel_east_mirrored4)
- erase_asset(karel_west4)
- erase_asset(karel_west_mirrored4)
- erase_asset(karel_north4)
- erase_asset(karel_north_mirrored4)
- erase_asset(karel_south4)
- erase_asset(karel_south_mirored4)
- erase_asset(karel_east5)
- erase_asset(karel_east5_mirrored)
- erase_asset(karel_west5)
- erase_asset(karel_west_mirrored5)
- erase_asset(karel_north5)
- erase_asset(karel_north_mirrored5)
- erase_asset(karel_south5)
- erase_asset(karel_south_mirored5)
- erase_asset(karel_east6)
- erase_asset(karel_east_mirrored6)
- erase_asset(karel_west6)
- erase_asset(karel_west_mirrored6)
- # Slide big Karels into each other, first half
- for i in range(int((310 - 110) / 2)):
- big_karel_east = relative_move_asset(big_karel_east, 1)
- big_karel_west_flipped = relative_move_asset(big_karel_west_flipped, -1)
- # Wait a hundreth of a second
- sleep(0.01)
-
- # Wait one second
- sleep(1)
-
- # Invert big Karels
- big_karel_east = recolour_asset(big_karel_east, "white", "black")
- # Wait one second
- sleep(1)
- big_karel_west_flipped = recolour_asset(big_karel_west_flipped, "black")
-
- # Wait one second
- sleep(1)
- # Slide big Karels out of each other, second half
- for i in range(int((310 - 110) / 2)):
- big_karel_east = relative_move_asset(big_karel_east, 1)
- big_karel_west_flipped = relative_move_asset(big_karel_west_flipped, -1)
- sleep(0.02)
- # Wait one second
- sleep(1)
- # Rotate big Karels eight times
- for i in range(8):
- big_karel_east = rotate_asset(big_karel_east, "left")
- big_karel_west_flipped = rotate_asset(big_karel_west_flipped, "right")
- # Wait three tenth of a second
- sleep(0.3)
- # Wait one second
- sleep(1)
- # Erase big Karels
- erase_asset(big_karel_east)
- erase_asset(big_karel_west_flipped)
- if __name__ == '__main__':
- main()
|