Документ взят из кэша поисковой машины. Адрес оригинального документа : http://kodomo.fbb.msu.ru/hg/snake/annotate/06f6a43de54a/main.py
Дата изменения: Unknown
Дата индексирования: Fri Feb 28 19:04:47 2014
Кодировка:
snake: main.py annotate

snake

annotate main.py @ 28:06f6a43de54a

main.UI.run() main.UI.step() #engine.canvas.w #engine.canvas.h
author Alex Martynov <martiran@kodomo.fbb.msu.ru>
date Sun, 19 Dec 2010 09:19:10 +0300
parents a9358a0852c7
children af9337dd3cf1
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