title: Python Clicker Game
body: <p>I have come up with some code that I am using for a clicker game, kinda like Cookie Clicker.</p>
  
  <pre><code>from tkinter import *
  import time
  
  master = Tk()
  
  def uiPrint():
      info()
      print("")
      print(click)
      blankLine()
  
  def info():
      print("Double click purchases need 50 clicks!")
      print("Auto clicker purchases need 75 clicks!")
  
  info()
  
  click = 0
  mult = 1
  dcp1 = 0
  
  def blankLine():
      for i in range(20):
          print("")
  
  def purchaseDoubleClicksCommand():
      global click
      global mult
      if click &lt; 5:
          print("Not enough clicks!")
          blankLine()
      elif click &gt;= 5:
          mult = mult*2
          click = click - 5
          print("Double Clicks Purchased!")
          blankLine()
  
  
  def purchaseAutoClickerCommand():
      global click
      if click &lt; 7:
          print("Not enough clicks!")
          blankLine()
      elif click &gt;= 7:
          click = click - 7
          print("Auto clicker purchased!")
          while True:
              click = click + 1
              time.sleep(1)
  
  
  def buttonCommand():
      global click
      global mult
      click += 1*(mult)
      uiPrint()
  
      if click == 100:
          print('''Achievement Unlocked: Junior Clicker!
          BONUS 100 clicks!''')
          click += 100
  
      elif click == 400:
          print ('''Achievement Unlocked: Little Ninja Clicks!
          BONUS 200!''')
          click += 300
  
      elif click == 1500:
          print ('''Achievement Unlocked: Click Ninja Master!
          QUAD CLICKS!''')
          mult = mult * 4
  
      elif click == 3000:
          print ('''Achievement Unlocked:  Jackie Chan Style!
          8 TIMES THE CLICKS!''')
          mult = mult * 8
  
  mainClickButton = Button(master, text="Click!", command = buttonCommand)
  mainClickButton.pack()
  
  purchaseDoubleClickButton = Button(master, text="Purchase Double Clicks", command = purchaseDoubleClicksCommand)
  purchaseDoubleClickButton.pack()
  
  purchaseAutoClickerButton = Button(master, text="Purchase Auto Clicker", command = purchaseAutoClickerCommand)
  purchaseAutoClickerButton.pack()
  
  master.title("Clicker! v0.0.6")
  master.geometry("%sx%s+%s+%s" % (200,70,512,512))
  mainloop()
  </code></pre>
  
  <p>This is the code that I have so far. I am trying to add an Auto Clicker that you can buy through a button. I have found one other post that is about this, but the solution for that uses PyMouse which 1.) I can't get installed (Trust me I've tried everything) and 2.) Don't want to imitate user input.</p>
  
  <p>So this is the code in question.</p>
  
  <pre><code>def purchaseAutoClickerCommand():
      global click
      if click &lt; 7:
          print("Not enough clicks!")
          blankLine()
      elif click &gt;= 7:
          click = click - 7
          print("Auto clicker purchased!")
          while True:
              click = click + 1
              time.sleep(1)
  </code></pre>
  
  <p>And the code in charge of the button</p>
  
  <pre><code>purchaseAutoClickerButton = Button(master, text="Purchase Auto Clicker", command = purchaseAutoClickerCommand)
  purchaseAutoClickerButton.pack()
  </code></pre>
  
  <p>When I hit the button that says "Purchase Auto Clicker", not only do I not get the number of clicks to increase by one per second, but the entire app crashes.</p>
  
  <p>So my main question is, how can I have the number of clicks increase by one per second by the game itself (without the user needing to keep the mouse on the "Click!" button), and how can I have the Auto Clickers stack when more than one are bought (plus I would like to not have the program crash as soon as I try to buy it). </p>
  
  <p>Editing this for Scratso to see:</p>
  
  <p>This is what I have changed to the code</p>
  
  <pre><code>click = 0
  mult = 1
  dcp1 = 0
  autoclickers = 0
  
  def blankLine():
      for i in range(20):
          print("")
  
  def purchaseDoubleClicksCommand():
      global click
      global mult
      if click &lt; 5:
          print("Not enough clicks!")
          blankLine()
      elif click &gt;= 5:
          mult = mult*2
          click = click - 5
          print("Double Clicks Purchased!")
          blankLine()
  
  
  def purchaseAutoClickerCommand():
      global click
      global autoclickers
      if click &lt; 7:
          print("Not enough clicks!")
          blankLine()
      elif click &gt;= 7:
          autoclickers += 1 # add an autoclicker
          click = click - 7
          print("Auto clicker purchased!")
  </code></pre>
  
  <p>And at the end of the code I have added </p>
  
  <pre><code>while True:
      mainClickButton = Button(master, text="Click!", command = buttonCommand)
      mainClickButton.pack()
  
      purchaseDoubleClickButton = Button(master, text="Purchase Double Clicks", command = purchaseDoubleClicksCommand)
      purchaseDoubleClickButton.pack()
  
      purchaseAutoClickerButton = Button(master, text="Purchase Auto Clicker", command = purchaseAutoClickerCommand)
      purchaseAutoClickerButton.pack()
  
      master.title("Clicker! v0.0.6")
      master.geometry("%sx%s+%s+%s" % (200,70,512,512))
      mainloop()
  
      for autoclicker in range(autoclickers):
          click += 1
      time.sleep(1)
  </code></pre>