furas

Python - Tkinter - Army Game

Aug 21st, 2016
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.75 KB | None | 0 0
  1. #
  2. # https://www.reddit.com/r/learnpython/comments/4yx1e9/tkinter_help/
  3. #
  4.  
  5. from tkinter import *
  6.  
  7. # --- constants ---
  8.  
  9. LARGE_FONT= ("Lato", 12)
  10. MID_FONT= ("Lato", 10)
  11.  
  12. # --- database ---
  13.  
  14. army_list = []
  15.  
  16. # --- functions ---
  17.  
  18. def insert_data():
  19.     army_list.append([
  20.         unit_name.get(),
  21.         points_cost.get(),
  22.         fight.get(),
  23.         strength.get(),
  24.         wounds.get(),
  25.         courage.get(),
  26.         attacks.get(),
  27.         might.get(),
  28.         will.get(),
  29.         fate.get(),
  30.     ])
  31.     print(army_list)
  32.  
  33.     points = 0
  34.    
  35.     for index_row, row in enumerate(army_list, 4):
  36.        
  37.         print('row:', row)
  38.  
  39.         for index_col, element in enumerate(row, 0):
  40.            
  41.             print(index_col, index_row)
  42.  
  43.             l = Label(Final_Army, text=element)
  44.             l.grid(row=index_row, column=index_col)
  45.             l = Label(Units, text=element)
  46.             l.grid(row=index_row, column=index_col)
  47.        
  48.         points += row[9]
  49.        
  50.     l = Label(Final_Army, text=points, font=LARGE_FONT)
  51.     l.grid(row=82, column=10)
  52.  
  53.  
  54. def clear_entries():
  55.     unit_name.set('')
  56.     points_cost.set('')
  57.     fight.set('')
  58.     strength.set('')
  59.     wounds.set('')
  60.     attacks.set('')
  61.     might.set('')
  62.     will.set('')
  63.     fate.set('')
  64.     courage.set('')
  65.  
  66.  
  67. def clear_text():
  68.     army_name.set('')
  69.  
  70.  
  71. def raise_frame(frame):
  72.     frame.tkraise()
  73.  
  74. # --- main ---
  75.  
  76. root = Tk()
  77.  
  78. Home = Frame(root)
  79. New_Army = Frame(root)
  80. Load_Army = Frame(root)
  81. Units = Frame(root)
  82. Unit_Creator = Frame(root)
  83. Construct_Army = Frame(root)
  84. Final_Army = Frame(root)
  85.  
  86. for frame in (Home, New_Army, Units, Unit_Creator, Construct_Army, Final_Army):
  87.     frame.grid(row=0, column=0, sticky='news')
  88.  
  89. # --- Home Frame ---
  90.  
  91. l = Label(Home, text="Home", font=LARGE_FONT)
  92. l.grid(row=1, column=1, columnspan=3)
  93.  
  94. b = Button(Home, text="New Game", command=lambda: raise_frame(New_Army))
  95. b.grid(row=3, column=3)
  96.  
  97. b = Button(Home, text="Quit")
  98. b.grid(row=4, column=3)
  99.  
  100. # --- New Army Frame ---
  101.  
  102. army_name = StringVar()
  103.  
  104. l = Label(New_Army, text="New Army", font=LARGE_FONT)
  105. l.grid(row=1, column=1, columnspan=4)
  106.  
  107. l = Label(New_Army, text="Name Army:")
  108. l.grid(row=2, rowspan=2, column=1)
  109.  
  110. e = Entry(New_Army, textvariable=army_name)
  111. e.grid(row=2, rowspan=2, column=2, columnspan=2)        
  112.  
  113. b = Button(New_Army, text="Back", command=lambda: raise_frame(Home) and clear_text())
  114. b.grid(row=2, column=4)
  115.  
  116. b = Button(New_Army, text="Enter",command=lambda: raise_frame(Units) and clear_text())
  117. b.grid(row=3,column=4)
  118.  
  119. # --- Units Frame ---
  120.  
  121. l = Label(Units, text="Create Your Units For:", font=LARGE_FONT)
  122. l.grid(row=1,column=1,columnspan=9)
  123.  
  124. l = Label(Units, textvariable=army_name,font=LARGE_FONT)
  125. l.grid(row=2,column=1,columnspan=9)
  126.  
  127. headers = ("Name", "Points Cost", "Fight", "Strength", "Wounds", "Attacks", "Might", "Will", "Fate")
  128.  
  129. for index_col, name in enumerate(headers):
  130.     l = Label(Units, text=name+':', font=MID_FONT)
  131.     l.grid(row=3, column=index_col)
  132.  
  133. b = Button(Units, text="Add Unit", command=lambda: raise_frame(Unit_Creator))
  134. b.grid(row=80,column=1,columnspan=9)
  135.  
  136. b = Button(Units, text="Back", command=lambda: raise_frame(New_Army))
  137. b.grid(row=81,column=1,columnspan=9)
  138.  
  139. b = Button(Units, text="Construct Your Army", command=lambda: raise_frame(Final_Army))
  140. b.grid(row=82,column=1,columnspan=9)
  141.  
  142. # --- Unit Creator Frame ---
  143.  
  144. l = Label(Unit_Creator, text="Create a Unit:", font=LARGE_FONT)
  145. l.grid(row=1,column=1, columnspan=3)
  146.  
  147. unit_name = StringVar()
  148.  
  149. l = Label(Unit_Creator, text="Name:")
  150. l.grid(row=2,column=1)
  151. e = Entry(Unit_Creator, textvariable=unit_name)
  152. e.grid(row=2,column=2)
  153.  
  154. points_cost = IntVar()
  155.  
  156. l = Label(Unit_Creator, text="Points Cost:")
  157. l.grid(row=3,column=1)
  158. e = Entry(Unit_Creator, textvariable=points_cost)
  159. e.grid(row=3,column=2)
  160.  
  161. fight = IntVar()
  162.  
  163. l = Label(Unit_Creator, text="Fight:")
  164. l.grid(row=4,column=1)
  165. e = Entry(Unit_Creator, textvariable=fight)
  166. e.grid(row=4,column=2)
  167.  
  168. strength = IntVar()
  169.  
  170. l = Label(Unit_Creator, text="Strength:")
  171. l.grid(row=5,column=1)
  172. e = Entry(Unit_Creator, textvariable=strength)
  173. e.grid(row=5,column=2)
  174.  
  175. wounds = IntVar()
  176.  
  177. l = Label(Unit_Creator, text="Wounds:")
  178. l.grid(row=6,column=1)
  179. e = Entry(Unit_Creator, textvariable=wounds)
  180. e.grid(row=6,column=2)
  181.  
  182. courage = IntVar()
  183.  
  184. l = Label(Unit_Creator, text="Courage:")
  185. l.grid(row=7,column=1)
  186. e = Entry(Unit_Creator, textvariable=courage)
  187. e.grid(row=7,column=2)
  188.  
  189. attacks = IntVar()
  190.  
  191. l = Label(Unit_Creator, text="Attacks:")
  192. l.grid(row=8,column=1)
  193. e = Entry(Unit_Creator, textvariable=attacks)
  194. e.grid(row=8,column=2)
  195.  
  196. might = IntVar()
  197.  
  198. l = Label(Unit_Creator, text="Might:")
  199. l.grid(row=9,column=1)
  200. e = Entry(Unit_Creator, textvariable=might)
  201. e.grid(row=9,column=2)
  202.  
  203. will = IntVar()
  204.  
  205. l = Label(Unit_Creator, text="Will:")
  206. l.grid(row=10,column=1)
  207. e = Entry(Unit_Creator, textvariable=will)
  208. e.grid(row=10,column=2)
  209.  
  210. fate = IntVar()
  211.  
  212. l = Label(Unit_Creator, text="Fate:")
  213. l.grid(row=11,column=1)
  214. e = Entry(Unit_Creator, textvariable=fate)
  215. e.grid(row=11,column=2)
  216.  
  217. b = Button(Unit_Creator, text="Back", command=lambda: raise_frame(Units))
  218. b.grid(row=9,column=3)
  219. b = Button(Unit_Creator, text="Reset Entries", command=lambda: clear_entries())
  220. b.grid(row=10,column=3)
  221.  
  222. b = Button(Unit_Creator, text="Add The Unit To Data-Base", command=lambda: insert_data())
  223. b.grid(row=11,column=3)
  224.  
  225. # --- Final Army Frame ---
  226.  
  227. l = Label(Final_Army, text="Your Final Army",font=LARGE_FONT)
  228. l.grid(row=1,column=1,columnspan=10)
  229.  
  230. b = Button(Final_Army, text="Back", command=lambda: raise_frame(Units))
  231. b.grid(row=80,column=10)
  232.  
  233. b = Button(Final_Army, text="Enter", command=lambda: raise_frame(Home))
  234. b.grid(row=81,column=10)
  235.  
  236. # --- start ---
  237.  
  238. raise_frame(Home)
  239.  
  240. root.mainloop()
Add Comment
Please, Sign In to add comment