У вас проблема, потому что вы используете одно и то же имя для разных переменных
cookie = 0
cookie = Button(...)
, поэтому вы думаете, что добавляете два целых числа в
cookie + am
, но Python видит
Button + am
Аналогично
def farm()
farm = Button(...)
def grandma()
grandma = Button(...)
Рабочий код использования button_cookie
, button_farm
from tkinter import *
cookie = 0
am = 1
def cookieFunc():
global cookie
global am
cookie = cookie + am
print(cookie, am)
def grandma():
global cookie
global am
if cookie >= 10:
cookie = cookie - 10
am = am + 0.5
print(cookie, am)
def farm():
global cookie
global am
if cookie >= 100:
cookie = cookie - 100
am = am + 5
print(cookie, am)
root = Tk()
root.geometry('300x300')
button_cookie = Button(root, text='cookie', command=cookieFunc)
button_cookie.pack()
button_grandma = Button(root, text='grandma', command=grandma)
button_grandma.pack()
button_farm = Button(root, text='farm', command=farm)
button_farm.pack()
root.mainloop()