|
|
@@ -0,0 +1,218 @@
|
|
|
+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()
|