Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ îðèãèíàëüíîãî äîêóìåíòà : http://kodomo.cmm.msu.su/trac/snake/browser/main.py?rev=42
Äàòà èçìåíåíèÿ: Unknown
Äàòà èíäåêñèðîâàíèÿ: Sun Apr 10 19:25:58 2016
Êîäèðîâêà: IBM-866
main.py òÀÓ Python Battle

source: main.py @ 42:21a5779088e6

Revision 42:21a5779088e6, 2.7 KB checked in by Daniil Alexeyevsky <me.dendik@òÀæ>, 5 years ago (diff)

main.py: added if name == "main" condition to automatic ui startup

Lineˆà
1importˆàTkinterˆàasˆàtk
2importˆàtkFileDialogˆàasˆàtkfd
3importˆàengine
4importˆàsnake
5
6
7
8classˆàUI(object):
9ˆà ˆà defˆà__init__ˆà(self):
10ˆà ˆà ˆà ˆà self.root =ˆàtk.Tk()
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ˆà ˆà ˆà ˆà buttons =ˆàtk.Frame(self.root)
15ˆà ˆà ˆà ˆà buttons.pack(side ="bottom",ˆàfill="both",ˆàexpand="yes")
16ˆà ˆà ˆà ˆà self.buttons_pack(buttons)
17ˆà ˆà ˆà ˆà self.step_id =ˆà0
18ˆà ˆà ˆà ˆà self.engine =ˆàengine.Engine(self.canvas)
19ˆà ˆà ˆà ˆà self.after_id =ˆàNone
20ˆà ˆà ˆà ˆà return
21ˆà ˆà defˆàbuttons_pack(self,ˆàframe):
22ˆà ˆà ˆà ˆà load_1 =ˆàtk.Button(frame,ˆàtext="Load 1",ˆàcommand=lambda:ˆàself.load(1))
23ˆà ˆà ˆà ˆà load_1.pack(side="left",ˆàfill="both",ˆàexpand =ˆà"yes")
24ˆà ˆà ˆà ˆà load_2 =ˆàtk.Button(frame,ˆàtext="Load 2",ˆàcommand=lambda:ˆàself.load(2))
25ˆà ˆà ˆà ˆà load_2.pack(side="left",ˆàfill="both",ˆàexpand =ˆà"yes")
26ˆà ˆà ˆà ˆà run_b =ˆàtk.Button(frame,ˆàtext="Run",ˆàcommand=lambda:ˆàself.run())
27ˆà ˆà ˆà ˆà run_b.pack(side="left",ˆàfill="both",ˆàexpand =ˆà"yes")
28ˆà ˆà ˆà ˆà load_3 =ˆàtk.Button(frame,ˆàtext="Load 3",ˆàcommand=lambda:ˆàself.load(3))
29ˆà ˆà ˆà ˆà load_3.pack(side="right",ˆàfill="both",ˆàexpand =ˆà"yes")
30ˆà ˆà ˆà ˆà load_4 =ˆàtk.Button(frame,ˆàtext="Load 4",ˆàcommand=lambda:ˆàself.load(4))
31ˆà ˆà ˆà ˆà load_4.pack(side="right",ˆàfill="both",ˆàexpand =ˆà"yes")
32ˆà ˆà ˆà ˆà step_b =ˆàtk.Button(frame,ˆàtext="Step",ˆàcommand=lambda:ˆàself.step())
33ˆà ˆà ˆà ˆà step_b.pack(side="right",ˆàfill="both",ˆàexpand =ˆà"yes")
34ˆà ˆà ˆà ˆà return
35ˆà ˆà
36ˆà ˆà defˆàloadˆà(self,ˆàsnake_number):
37ˆà ˆà ˆà ˆà ifˆàself.step_id >=ˆà200:
38ˆà ˆà ˆà ˆà ˆà ˆà self.step_id =ˆà0
39ˆà ˆà ˆà ˆà ˆà ˆà pass
40ˆà ˆà ˆà ˆà elifˆàself.step_id ==ˆà0:
41ˆà ˆà ˆà ˆà ˆà ˆà file_name =ˆàtkfd.askopenfilename(title="Open file")
42ˆà ˆà ˆà ˆà ˆà ˆà snake =ˆàself.engine.create_snake(snake_number)
43ˆà ˆà ˆà ˆà ˆà ˆà snake.load(file_name)
44ˆà ˆà ˆà ˆà ˆà ˆà pass
45ˆà ˆà ˆà ˆà else:
46ˆà ˆà ˆà ˆà ˆà ˆà pass
47ˆà ˆà ˆà ˆà return
48
49ˆà ˆà defˆàrunˆà(self):
50ˆà ˆà ˆà ˆà self.step_id =ˆàself.step_id+1
51ˆà ˆà ˆà ˆà self.engine.step()
52ˆà ˆà ˆà ˆà self.after_id =ˆàself.canvas.after(300,ˆàself.run())
53ˆà ˆà ˆà ˆà ifˆàself.step_id ==ˆà200:
54ˆà ˆà ˆà ˆà ˆà ˆà self.canvas.after_cancel(self.after_id)
55ˆà ˆà ˆà ˆà ˆà ˆà self.end()
56ˆà ˆà ˆà ˆà ˆà ˆà pass
57ˆà ˆà ˆà ˆà return
58ˆà ˆà defˆàstepˆà(self):
59ˆà ˆà ˆà ˆà ifˆàself.step_id <=ˆà200:
60ˆà ˆà ˆà ˆà ˆà ˆà ifˆàself.after_id !=ˆàNone:
61ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà self.canvas.after_cancel(self.after_id)
62ˆà ˆà ˆà ˆà ˆà ˆà ˆà ˆà pass
63ˆà ˆà ˆà ˆà ˆà ˆà self.step_id =ˆàself.step_id+1
64ˆà ˆà ˆà ˆà ˆà ˆà self.engine.step()
65ˆà ˆà ˆà ˆà ˆà ˆà pass
66ˆà ˆà ˆà ˆà else:
67ˆà ˆà ˆà ˆà ˆà ˆà self.end()
68ˆà ˆà ˆà ˆà ˆà ˆà pass
69ˆà ˆà ˆà ˆà return
70
71ˆà ˆà defˆàendˆà(self):
72ˆà ˆà ˆà ˆà root =ˆàtk.Tk()
73ˆà ˆà ˆà ˆà end_label =ˆàtk.Label(root,ˆàtext="End")
74ˆà ˆà ˆà ˆà end_label.pack()
75ˆà ˆà ˆà ˆà root.mainloop()
76ˆà ˆà ˆà ˆà pass
77
78ifˆà__name__ ==ˆà"__main__":
79ˆà ˆà snake_batle =ˆàUI()
80ˆà ˆà snake_batle.root.mainloop()
Note: See TracBrowser for help on using the repository browser.