rev |
line source |
martiran@18
|
1 import Tkinter as tk |
Alex@23
|
2 import tkFileDialog as tkfd |
martiran@20
|
3 import engine |
martiran@18
|
4 |
martiran@18
|
5 |
martiran@18
|
6 |
martiran@18
|
7 class UI(object): |
martiran@19
|
8 def __init__ (self): |
martiran@20
|
9 root = tk.Tk() |
martiran@20
|
10 root.title("Python Battle") |
martiran@20
|
11 self.canvas = tk.Canvas(root, background = "black") |
martiran@19
|
12 self.canvas.pack(side ="top", fill="both", expand="yes") |
martiran@20
|
13 buttons = tk.Frame(root) |
martiran@20
|
14 buttons.pack(side ="bottom", fill="both", expand="yes") |
martiran@20
|
15 self.buttons_pack(buttons) |
martiran@28
|
16 self.step_id = 0 |
martiran@19
|
17 self.engine = engine.Engine(self.canvas) |
martiran@18
|
18 return |
martiran@20
|
19 def buttons_pack(self, frame): |
martiran@28
|
20 load_1 = tk.Button(frame, text="Load", command=lambda: self.load(1)) |
martiran@20
|
21 load_1.pack(side="top", fill="both", expand = "yes") |
martiran@28
|
22 load_2 = tk.Button(frame, text="Load", command=lambda: self.load(2)) |
martiran@20
|
23 load_2.pack(side="top", fill="both", expand = "yes") |
martiran@28
|
24 run_b = tk.Button(frame, text="Run", command=lambda: self.run()) |
martiran@20
|
25 run_b.pack(side="top", fill="both", expand = "yes") |
martiran@28
|
26 load_3 = tk.Button(frame, text="Load", command=lambda: self.load(3)) |
martiran@20
|
27 load_3.pack(side="bottom", fill="both", expand = "yes") |
martiran@28
|
28 load_4 = tk.Button(frame, text="Load", command=lambda: self.load(4)) |
martiran@20
|
29 load_4.pack(side="bottom", fill="both", expand = "yes") |
martiran@28
|
30 step_b = tk.Button(frame, text="Step", command=lambda: self.step()) |
martiran@20
|
31 step_b.pack(side="bottom", fill="both", expand = "yes") |
martiran@20
|
32 return |
Alex@23
|
33 def load (self, snake_number): |
Alex@23
|
34 file_name = tkfd.askopenfilename(title="Open file") |
Alex@27
|
35 snake = self.engine.create_snake(snake_number) |
Alex@27
|
36 snake.load(file_name) |
Alex@27
|
37 return |
Alex@23
|
38 |
martiran@18
|
39 def run (self): |
martiran@28
|
40 self.step_id = self.id+1 |
martiran@28
|
41 self.engine.step() |
martiran@28
|
42 self.after_id = self.canvas.after(300, self.run()) |
martiran@28
|
43 if self.step_id == 200: |
martiran@28
|
44 self.canvas.after_cancel(self.after_id) |
martiran@28
|
45 self.end() |
martiran@28
|
46 pass |
martiran@28
|
47 return |
martiran@28
|
48 def step (self): |
martiran@28
|
49 self.canvas.after_cancel(self.after_id) |
martiran@28
|
50 self.id = self.id+1 |
martiran@28
|
51 self.engine.step() |
martiran@28
|
52 pass |
Alex@23
|
53 |
martiran@28
|
54 def end (self): |
martiran@18
|
55 pass |
martiran@18
|
56 |