Exemple #1
0
    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)
Exemple #2
0
 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
Exemple #3
0
 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
Exemple #4
0
    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
Exemple #6
0
"""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
Exemple #7
0
 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')