view main.py @ 129:cfe29cb793eb
Snake may be filled even if empty
author |
Daniil Alexeyevsky <me.dendik@gmail.com> |
date |
Mon, 20 Dec 2010 16:21:00 +0300 |
parents |
9486211ec334 |
children |
95f0ab48310a |
line source
2 import tkFileDialog as tkfd
11 self.root.title("Python Battle")
12 self.canvas = tk.Canvas(self.root, background = "black")
13 self.canvas.pack(side ="top", fill="both", expand="yes")
14 self.buttons_pack(self.root).pack(side ="bottom", fill="both", expand="no")
16 self.engine = engine.Engine(self.canvas)
19 def buttons_pack(self, root):
20 buttons = tk.Frame(root)
21 load_1 = tk.Button(buttons, text="Load 1", command=lambda: self.load(1))
22 load_1.pack(side="left", fill="both", expand = "yes")
23 load_2 = tk.Button(buttons, text="Load 2", command=lambda: self.load(2))
24 load_2.pack(side="left", fill="both", expand = "yes")
25 run_b = tk.Button(buttons, text="Run", command=lambda: self.run())
26 run_b.pack(side="left", fill="both", expand = "yes")
27 load_3 = tk.Button(buttons, text="Load 3", command=lambda: self.load(3))
28 load_3.pack(side="right", fill="both", expand = "yes")
29 load_4 = tk.Button(buttons, text="Load 4", command=lambda: self.load(4))
30 load_4.pack(side="right", fill="both", expand = "yes")
31 step_b = tk.Button(buttons, text="Step", command=lambda: self.step())
32 step_b.pack(side="right", fill="both", expand = "yes")
35 def load (self, snake_number):
36 if self.step_id >= 200:
40 file_name = tkfd.askopenfilename(title="Open file")
41 snake = self.engine.create_snake(snake_number)
42 snake.load(open(file_name, "r"))
49 if self.dead_snake_check() == False:
51 if self.step_id >= 200:
54 self.step_id = self.step_id+1
56 self.after_id = self.canvas.after(300, self.run)
59 if self.dead_snake_check() == False:
61 if self.step_id <= 200:
62 if self.after_id != None:
63 self.canvas.after_cancel(self.after_id)
65 self.step_id = self.step_id+1
73 def dead_snake_check(self):
75 for snake in self.engine.snakes:
77 dead_snakes=dead_snakes+1
84 if self.after_id != None:
85 self.canvas.after_cancel(self.after_id)
88 end_label = tk.Label(root, text="End")
93 if __name__ == "__main__":
95 snake_batle.root.mainloop()