
from Tkinter import *
import random

class Nim(object):
     def __init__(self, height):
         self.height = height
         self.player = 0
         self.names = ["user", "computer"]
         self.scores = {}
         self.scores["user"] = 0
         self.scores["computer"] = 0
     def move(self, user): # self.height is > 1
         if user > 0 and user <= self.height / 2:
             self.height -= user
             if self.height == 1:
                 print self.names[self.player], "has won the game."
                 winner = self.names[self.player]
                 self.scores[winner] += 1
                 self.player = 0
                 self.height = random.randrange(10, 20)
                 self.report()
             else:
                 self.player = (self.player + 1) % 2
                 comp = random.randrange(1, self.height/2+1)
                 print "The computer chooses", comp
                 self.height -= comp
                 if self.height == 1:
                     print self.names[self.player], "has won the game."
                     winner = self.names[self.player]
                     self.scores[winner] += 1
                     self.player = 0
                     self.height = random.randrange(10, 20)
                     self.report()
                 else:
                     self.player = (self.player + 1) % 2
                     self.report()
         else:
             print self.names[self.player], "has lost the game."
             winner = self.names[(self.player+1)%2]
             self.scores[winner] += 1
             self.player = 0
             self.height = random.randrange(10, 20)
             self.report()
     def report(self):
         print "The height is now:", self.height
         print "The",self.names[self.player],"moves."
         return "The height is now:" + str(self.height)


class Application(Frame):
     def __init__(self, master):
         Frame.__init__(self,master)
         self.grid()
         self.balance = 0
         self.g = Nim(10)
         self.createWidgets()
     def createWidgets(self):
         self.v = StringVar()
         self.w = Label(self, textvariable=self.v)
         self.v.set(self.g.report())
         self.w.grid()
         self.user = Entry(self)
         self.user.grid()
         self.bOne = Button(self)
         self.bOne["text"] = "Click me."
         self.bOne["command"] = self.update
         self.bOne.grid()

     def update(self):
         self.balance +=float(self.user.get())
         self.g.move(int(self.user.get()))
         self.v.set(self.g.report())

root = Tk()

root.title("July 31, 2006")
root.geometry("300x300")
app = Application(root)

root.mainloop()


