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

snake

annotate main.py @ 133:29cf8819e04c

Expand buttons in UI
author Daniil Alexeyevsky <me.dendik@gmail.com>
date Mon, 20 Dec 2010 16:37:23 +0300
parents 64da3ed55436
children 21dca2c88275
rev   line source
martiran@18 1 import Tkinter as tk
Alex@23 2 import tkFileDialog as tkfd
martiran@20 3 import engine
martiran@32 4 import snake
martiran@18 5
martiran@18 6
martiran@18 7
martiran@18 8 class UI(object):
martiran@19 9 def __init__ (self):
martiran@29 10 self.root = tk.Tk()
martiran@29 11 self.root.title("Python Battle")
martiran@29 12 self.canvas = tk.Canvas(self.root, background = "black")
martiran@19 13 self.canvas.pack(side ="top", fill="both", expand="yes")
me@96 14 self.buttons_pack(self.root).pack(side ="bottom", fill="both", expand="no")
martiran@28 15 self.step_id = 0
martiran@19 16 self.engine = engine.Engine(self.canvas)
martiran@32 17 self.after_id = None
martiran@18 18 return
me@96 19 def buttons_pack(self, root):
me@96 20 buttons = tk.Frame(root)
me@96 21 load_1 = tk.Button(buttons, text="Load 1", command=lambda: self.load(1))
martiran@132 22 load_1.grid(row=1, column=2, stick="news")
me@96 23 load_2 = tk.Button(buttons, text="Load 2", command=lambda: self.load(2))
martiran@132 24 load_2.grid(row=2, column=3, stick="news")
me@96 25 run_b = tk.Button(buttons, text="Run", command=lambda: self.run())
martiran@132 26 run_b.grid(row=1, column=5, stick="news")
me@96 27 load_3 = tk.Button(buttons, text="Load 3", command=lambda: self.load(3))
martiran@132 28 load_3.grid(row=3, column=2, stick="news")
me@96 29 load_4 = tk.Button(buttons, text="Load 4", command=lambda: self.load(4))
martiran@132 30 load_4.grid(row=2, column=1, stick="news")
me@96 31 step_b = tk.Button(buttons, text="Step", command=lambda: self.step())
martiran@132 32 step_b.grid(row=3, column=5, stick="news")
me@133 33 for column in range(1, 6):
me@133 34 buttons.grid_columnconfigure(column, weight=1)
me@96 35 return buttons
martiran@29 36
Alex@23 37 def load (self, snake_number):
martiran@29 38 if self.step_id >= 200:
martiran@29 39 self.step_id = 0
martiran@130 40 self.engine.snakes = [None, None, None, None]
martiran@29 41 pass
martiran@107 42 if self.step_id == 0:
martiran@29 43 file_name = tkfd.askopenfilename(title="Open file")
martiran@29 44 snake = self.engine.create_snake(snake_number)
Alex@78 45 snake.load(open(file_name, "r"))
martiran@29 46 pass
Alex@103 47 self.engine.refill()
Alex@86 48 self.engine.redraw()
Alex@27 49 return
Alex@23 50
martiran@18 51 def run (self):
Alex@97 52 if self.dead_snake_check() == False:
Alex@97 53 return
martiran@122 54 if self.step_id >= 200:
martiran@122 55 self.end()
martiran@122 56 return
martiran@32 57 self.step_id = self.step_id+1
martiran@28 58 self.engine.step()
martiran@111 59 self.after_id = self.canvas.after(300, self.run)
martiran@28 60 return