def __init__(self, parent, width=700, height=700, verbose=False, gui=True, **options): Frame.__init__(self, parent, **options) self._turtles = [] self._items = {} self._running = 0 self._timestamp = 0 self._period = 10 # milliseconds self._verbose = verbose self._gui = gui self._canvas_offset = Vector(150, 150) self.runtime_period = 10 # actual time for each period if self._gui: self.canvas = Canvas(self, width=width, height=height) self.canvas.pack() parent.title("UC Berkeley CS9H Turtle Arena") Button(self, text='step', command=self.step).pack(side=LEFT) Button(self, text='run', command=self.run).pack(side=LEFT) Button(self, text='stop', command=self.stop).pack(side=LEFT) Button(self, text='quit', command=parent.quit).pack(side=LEFT) self.canvas.bind('<ButtonPress>', self.press) self.canvas.bind('<Motion>', self.motion) self.canvas.bind('<ButtonRelease>', self.release) self.width, self.height = width, height self.dragging, self.drag_start, self.start = (None, None, None)
def press(self, event): """Handles button press event""" drag_start = Vector(event.x, event.y) for turtle in self._turtles: if (drag_start - self._canvas_offset - turtle.position).length() < 10: self.dragging = turtle self.drag_start = drag_start self.start = turtle.position return
def press(self, event): """Handles button press event""" drag_start = Vector(event.x, event.y) for turtle in self._turtles: if (drag_start - turtle.position).length() < 10: self.dragging = turtle self.drag_start = drag_start self.start = turtle.position # self.startdirect = turtle.heading return
def __init__(self, parent, width=1200, height=600, verbose=False, gui=True, **options): Frame.__init__(self, parent, **options) self._turtles = [] self._items = {} self._running = 0 self._timestamp = 0 self._period = 10 # milliseconds self._verbose = verbose self._gui = gui self.initial_position = {} self.initial_heading = {} self.widget = {} self.radius_label = {} self.angle_label = {} self.new_angle_label = {} # new version self._canvas_offset = Vector(400, 100) self.runtime_period = 10 # actual time for each period if not self._gui: self.run() else: self.canvas = Canvas(self, width=width, height=height) self.canvas.pack() parent.title("UC Berkeley CS9H Turtle Arena") Button(self, text='reset', command=self.reset).pack(side=LEFT) Button(self, text='step', command=self.step).pack(side=LEFT) Button(self, text='run', command=self.run).pack(side=LEFT) Button(self, text='stop', command=self.stop).pack(side=LEFT) Button(self, text='quit', command=parent.quit).pack(side=LEFT) # Button(self, text='Menu', command=self.mymenu).pack(side=TOP) self.canvas.bind('<ButtonPress>', self.press) self.canvas.bind('<Motion>', self.motion) self.canvas.bind('<ButtonRelease>', self.release) self.width, self.height = width, height self.dragging, self.drag_start, self.start = (None, None, None)
"""DO NOT MODIFY THIS FILE. This file is for demonstration purpose only.""" from tkinter import * # Import everything from Tkinter from libs.Arena import Arena # Import our Arena from libs.Vector import * # Import everything from our Vector from WalkingTurtle import WalkingTurtle # Import the WalkingTurtle tk = Tk() # Create a Tk top-level widget arena = Arena(tk) # Create an Arena widget, arena arena.pack() # Tell arena to pack itself on screen arena.add(WalkingTurtle(Vector(200, 200), 0, 1)) # Add a very simple, basic turtle tk.mainloop() # Enter the Tkinter event loop
"""DO NOT MODIFY THIS FILE. This file is for demonstration purpose only.""" from tkinter import * # Import everything from Tkinter from libs.Arena import Arena # Import our Arena from libs.Vector import * # Import everything from our Vector from libs.Turtle import Turtle # Import the Turtle tk = Tk() # Create a Tk top-level widget arena = Arena(tk) # Create an Arena widget, arena arena.pack() # Tell arena to pack itself on screen arena.add(Turtle(Vector(200, 200), 0)) # Add a very simple, basic turtle tk.mainloop() # Enter the Tkinter event loop
def motion(self, event): """Handles drag event""" drag = Vector(event.x, event.y) if self.dragging: self.dragging.position = self.start + drag - self.drag_start self.update(self.dragging)
mouse_heading = mouse_angle - 90 cat_angle = 150.000 cat_heading = cat_angle - 90 cat_radius = 8.100 ''' ''' # case 5 mouse_angle = -57.000 mouse_heading = mouse_angle - 90 cat_angle = 0.000 cat_heading = cat_angle - 90 cat_radius = 4.000 # stoptime = 30*10**3 ''' statue = Statue(Vector(200, 200), 0, radius * 100) mouse = Mouse(Vector(200, 200), mouse_heading, radius * 100, 1, mouse_angle, arena) cat = Cat(Vector(200, 200), cat_heading, radius * 100, cat_radius * 100, 1.25, 1, cat_angle, mouse_angle, mouse, arena, updatetime.callback()) arena.add(statue) arena.add(mouse) arena.add(cat) arena.getinitial() arena.make_time_widgets() def cursor_motion(event): if arena.is_running() != 1: # print('stopped')