banner text(point( , )"python poker parlor"banner setsize( banner setfill("yellow "banner setstyle("bold"banner draw(self winself msg text(point( , )"welcome to the dice table"self msg setsize( self msg draw(self winself createdice(point( , ) self buttons [self adddicebuttons(point( , ) button(self winpoint( ) "roll dice"self buttons append(bb button(self winpoint( ) "score"self buttons append(bb button(self winpoint( , ) "quit"self buttons append(bself money text(point( , )"$ "self money setsize( self money draw(self winyou should compare this code to figure to make sure you understand how the elements of the interface are created and positioned hope you noticed that pushed the creation of the dice and their associated buttons into couple of helper methods here are the necessary definitionsdef createdice(selfcentersize)center move(- *size, self dice [for in range( )view dieview(self wincentersizeself dice append(viewcenter move( *size, def adddicebuttons(selfcenterwidthheight)center move(- *width for in range( , )label "die { }format(ib button(self wincenterwidthheightlabelself buttons append(bcenter move( *width these two methods are similar in that they employ loop to draw five similar widgets in both casesa point variablecenteris used to calculate the correct position of the next widget