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()