class TurtleWindow: ############################################################################################################### def __init__(self, num_vehicles, num_food_sources): self.root = None self.canvas = None self.wn = None self.button_frame = None self.start_button = None self.stop_button = None self.reset_button = None self.quit_button = None self.num_food_sources = num_food_sources self.food_source_list = [] self.num_vehicles = num_vehicles self.vehicle_list = [] self.running = False self.create_window() self.wn.tracer(0, 0) self.create_food_sources() self.create_vehicles() self.wn.update() ############################################################################################################### def create_window(self): self.root = tk.Tk() self.canvas = tk.Canvas(self.root, width=SCREEN_SIZE, height=SCREEN_SIZE) self.canvas.pack() self.wn = TurtleScreen(self.canvas) self.root.title("Braitenberg's Vehicle #2") self.wn.onkey(self.start_stop, "space") self.wn.listen() self.button_frame = tk.Frame(self.root) self.button_frame.pack() self.start_button = tk.Button(self.button_frame, text="Start", fg="black", command=self.start_stop) self.reset_button = tk.Button(self.button_frame, text="Reset", fg="black", command=self.reset) self.quit_button = tk.Button(self.button_frame, text="Quit", fg="black", command=self.quit) self.start_button.pack(side=tk.LEFT) self.reset_button.pack(side=tk.LEFT) self.quit_button.pack(side=tk.LEFT) ############################################################################################################### def create_food_sources(self): for i in range(self.num_food_sources): food_type = random.choice(['sugar']) if food_type == 'sugar': self.food_source_list.append(Sugar(self, i)) print(self.food_source_list) ############################################################################################################### def create_vehicles(self): for i in range(self.num_vehicles): self.vehicle_list.append(Vehicle(self, i)) ############################################################################################################### def start_stop(self): if self.running: self.running = False self.start_button.config(text="Start") else: self.running = True self.start_button.config(text="Pause") while self.running: for i in range(self.num_vehicles): self.vehicle_list[i].move() self.wn.update() time.sleep(0.01) ############################################################################################################### def reset(self): self.vehicle_list = [] self.food_source_list = [] self.wn.clear() self.wn.tracer(0, 0) self.create_food_sources() self.create_vehicles() self.wn.update() ############################################################################################################### @staticmethod def quit(): sys.exit()
combat() step += 1 turtle.seth(0) turtle.forward(10) def combat(): enemy = Turtle() enemy.up() eHealth = randint(20, 100) eDamage = randint(10, 20) root = Tk() canvas = ScrolledCanvas(root) canvas.pack(side=LEFT) screen = TurtleScreen(canvas) turtle = RawTurtle(canvas) turtle.up() w = Scale(root, from_=0, to=42) w.pack() w = Scale(root, from_=0, to=200, orient=HORIZONTAL) w.pack() screen.onkey(up, "Up") screen.onkey(down, "Down") screen.onkey(left, "Left") screen.onkey(right, "Right") screen.listen() screen.mainloop()