#Displays a red circle bouncing around the canvas window. from Tkinter import * import sys sq_size = int(raw_input("Enter the square size: ")) w_size = int(raw_input("Enter the window size: ")) speed = int(raw_input("Enter speed. Recommend 5. ")) window = Tk() canvas = Canvas(window, width = w_size, height = w_size) canvas.pack() squares = [[0 for i in range(w_size/sq_size)] for j in range(w_size/sq_size)] ant_x = w_size/sq_size/2 ant_y = ant_x ant_heading = 0 while True: canvas.after(speed) canvas.update() # animation code here! if ant_heading == 0: if squares[ant_x][ant_y]: ant_heading = 90 canvas.delete(squares[ant_x][ant_y]) squares[ant_x][ant_y] = 0 ant_y -= 1 else: ant_heading = 270 squares[ant_x][ant_y] = canvas.create_rectangle(ant_x*sq_size, ant_y*sq_size, ant_x*sq_size+sq_size, ant_y*sq_size+sq_size,fill="red") ant_y += 1 elif ant_heading == 90: if squares[ant_x][ant_y]: ant_heading = 180 canvas.delete(squares[ant_x][ant_y]) squares[ant_x][ant_y] = 0 ant_x -= 1 else: ant_heading = 0 squares[ant_x][ant_y] = canvas.create_rectangle(ant_x*sq_size, ant_y*sq_size, ant_x*sq_size+sq_size, ant_y*sq_size+sq_size,fill="red") ant_x += 1 elif ant_heading == 180: if squares[ant_x][ant_y]: ant_heading = 270 canvas.delete(squares[ant_x][ant_y]) squares[ant_x][ant_y] = 0 ant_y += 1 else: ant_heading = 90 squares[ant_x][ant_y] = canvas.create_rectangle(ant_x*sq_size, ant_y*sq_size, ant_x*sq_size+sq_size, ant_y*sq_size+sq_size,fill="red") ant_y -= 1 elif ant_heading == 270: if squares[ant_x][ant_y]: ant_heading = 0 canvas.delete(squares[ant_x][ant_y]) squares[ant_x][ant_y] = 0 ant_x += 1 else: ant_heading = 180 squares[ant_x][ant_y] = canvas.create_rectangle(ant_x*sq_size, ant_y*sq_size, ant_x*sq_size+sq_size, ant_y*sq_size+sq_size,fill="red") ant_x -= 1 else: print "Impossible Occured: Giving up now!" sys.exit() max = w_size / sq_size if ant_x < 0: ant_x = max - 1 if ant_y < 0: ant_y = max - 1 if ant_y == max: ant_y = 0 if ant_x == max: ant_x = 0 window.mainloop()