Credit: Problem written by a mystery CS106A Lecturer.
Write a program where a blue rectangle (which represents a stamp) follows a user's mouse around. Your program should draw a rectangle on the screen centered around the mouse when the user clicks.
"""File: stamp_tool.py-------------------This program lets you move the mouse to move a "stamp" around the screen,and wherever you click it "stamps" (adds a copy of the stamp shape) to thatlocation."""from graphics import CanvasSTAMP_SIZE = 50def main():canvas = Canvas()canvas.set_canvas_title("Stamp Tool")stamp_tool = draw_stamp(canvas, canvas.get_mouse_x(), canvas.get_mouse_y(), 'blue')while True:clicks = canvas.get_new_mouse_clicks()for click in clicks:draw_stamp(canvas, click.x, click.y, 'black')# stamp tool should be topmostcanvas.raise_to_front(stamp_tool)center_stamp(canvas, stamp_tool, canvas.get_mouse_x(), canvas.get_mouse_y())canvas.update()canvas.mainloop()def draw_stamp(canvas, x, y, color):"""Draws a stamp (rect) of the given color centered around the given location.Returns the rectangle drawn."""rect = canvas.create_rectangle(x - STAMP_SIZE / 2, y - STAMP_SIZE / 2,x + STAMP_SIZE / 2, y + STAMP_SIZE / 2)canvas.set_color(rect, color)return rectdef center_stamp(canvas, stamp, x, y):"""Repositions the given stamp (rect) to be centered around the given location."""canvas.moveto(stamp, x - canvas.get_width(stamp) / 2, y - canvas.get_height(stamp) / 2)if __name__ == "__main__":main()