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()