furas

Python - Tkinter - Army Game #2

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