Python 如何创建一个按钮,当您按下它时,它会继续运行您的代码,但当您单击其他位置时,它会被打断?

Python 如何创建一个按钮,当您按下它时,它会继续运行您的代码,但当您单击其他位置时,它会被打断?,python,Python,我的代码有一个问题,如果你运行它,你会看到在一个矩形里面有一个“点击滚动”的文本。如果在矩形内单击,如何使代码继续运行;如果在矩形外单击,如何使代码中断并关闭?有没有办法在不添加新模块的情况下使用我当前的模块?谢谢 import graphics from graphics import * from random import randrange max_x = 500 max_y = 300 win = GraphWin("Dice Rolls", max_x,max_y) #drives

我的代码有一个问题,如果你运行它,你会看到在一个矩形里面有一个“点击滚动”的文本。如果在矩形内单击,如何使代码继续运行;如果在矩形外单击,如何使代码中断并关闭?有没有办法在不添加新模块的情况下使用我当前的模块?谢谢

import graphics
from graphics import *
from random import randrange
max_x = 500
max_y = 300
win = GraphWin("Dice Rolls", max_x,max_y)
#drives the program
def main():
   class dots():
       #Drawn dots
     def __init__(self,p_x=0,p_y=0,p_s=50):
       self.m_x  = p_x
       self.m_y  = p_y
       self.m_dice_size = p_s
       self.m_items = []
       dot_size = 4
       x = self.m_x
       y = self.m_y
       s = self.m_dice_size
       d = s/4
       self.m_items.append(Circle(Point(x+2*d, y+2*d), dot_size))
       self.m_items.append(Circle(Point(x+1*d, y+1*d), dot_size))
       self.m_items.append(Circle(Point(x+1*d, y+2*d), dot_size))
       self.m_items.append(Circle(Point(x+1*d, y+3*d), dot_size))
       self.m_items.append(Circle(Point(x+3*d, y+1*d), dot_size))
       self.m_items.append(Circle(Point(x+3*d, y+2*d), dot_size))
       self.m_items.append(Circle(Point(x+3*d, y+3*d), dot_size))
       for dot in self.m_items:
         dot.setFill('black')
        #Displays three dice images based on the random value
     def display_dice(self):
       return (self.m_x,self.m_y,self.m_s)
     def undraw(self):
       for dot in self.m_items:
         dot.undraw()
               #Drawn Dice
     def draw(self, p_win, p_num):
       for dot in self.m_items:
         dot.undraw()
       if (p_num==1):
         self.m_items[0].draw(p_win)
       elif (p_num==2):
         self.m_items[3].draw(p_win)
         self.m_items[4].draw(p_win)
       elif (p_num==3):
         self.m_items[0].draw(p_win)
         self.m_items[3].draw(p_win)
         self.m_items[4].draw(p_win)
       elif (p_num==4):
         self.m_items[1].draw(p_win)
         self.m_items[3].draw(p_win)
         self.m_items[4].draw(p_win)
         self.m_items[6].draw(p_win)
       elif (p_num==5):
         self.m_items[0].draw(p_win)
         self.m_items[1].draw(p_win)
         self.m_items[3].draw(p_win)
         self.m_items[4].draw(p_win)
         self.m_items[6].draw(p_win)
       elif (p_num==6):
         self.m_items[1].draw(p_win)
         self.m_items[2].draw(p_win)
         self.m_items[3].draw(p_win)
         self.m_items[4].draw(p_win)
         self.m_items[5].draw(p_win)
         self.m_items[6].draw(p_win)

   #Prepares for next roll
   class dice_t:
     def __init__(self,x=0,y=0):
       self.m_x = x
       self.m_y = y
       self.m_s = 50
       self.m_item = Rectangle(Point(self.m_x,self.m_y),Point(self.m_x+self.m_s,self.m_y+self.m_s))
       self.m_item.setFill('white')
       self.m_dots = dots(self.m_x,self.m_y,self.m_s)
     def display_dice(self):
       return (self.m_x,self.m_y,self.m_s)
     def draw_die(self, p_win):
       self.m_item.undraw()
       self.m_item.draw(p_win)
     def draw(self, p_win, p_num):
       self.draw_die(p_win)
       self.m_dots.draw(p_win,p_num)
     def undraw(self):
       self.m_item.undraw()
       self.m_dots.undraw()
   #Winnings and losing calculation
   def check_winner(p_rolls=[]):
      last = None
      total = 0
      triple = True
      for r in p_rolls:
        if (last!=None) and (last!=r):
          triple = False
        last = r
        total += r
      if (total==3) or (total==18):
        return 10
      elif (total==4) or (total==17):
        return 5
      elif (triple ==True):
        return 2
      return -1
   #Text and instructions/rules
   def get_bet(p_win,p_balance,p_def_bet):
      inst = []
      inst.append(Text(Point(max_x/2,20), "MAKE YOUR BET: "))
      inst.append(Text(Point(max_x/2,40), "BALANCE:"+str(p_balance)))
      inst.append(Text(Point(max_x/2,70), "Rules: "))
      inst.append(Text(Point(max_x/2,90), "If you roll a 3 or 18 in total your bet winnings will be 10x your bet."))
      inst.append(Text(Point(max_x/2,110), "If you roll a 4 or 17 in total your bet winnings will be 5x your bet."))
      inst.append(Text(Point(max_x/2,130), "If you roll triples besides a 3 and 18 your bet winnings will be 2x your bet."))
      inst.append(Text(Point(max_x/2,150), 'If you roll anything else, you lose your bet.'))
      inst.append(Rectangle(Point(max_x/2-59,190), Point(max_x/2+59, 210)))
      inst.append(Text(Point(max_x/2, 200), 'CLICK TO ROLL'))
      for item in inst:
        item.draw(p_win)

      bet_text = str(p_def_bet)
      bet_input = Entry(Point (max_x/2+100, 20),5)
      bet_input.setText(bet_text)
      bet_input.draw(p_win)
      p_win.getMouse()
      bet_text = bet_input.getText()
      bet = int(bet_text)
      bet_input.undraw()
      for item in inst:
        item.undraw()
      return bet
   #Shows winnings, checks for winner, updates total, and returns the updated total
   def show_winnings(p_win, p_winnings):
      inst = []
      inst.append(Text(Point(max_x/2,90), "Your WINNINGS:"+str(winnings)))
      inst.append(Rectangle(Point(max_x/2-50,190), Point(max_x/2+50, 210)))
      inst.append(Text(Point(max_x/2, 200), 'PLAY AGAIN'))
      for item in inst:
        item.draw(p_win)
      p_win.getMouse()
      for item in inst:
        item.undraw()
   #Shows bet
   def show_bet_invalid(p_win):
      inst = []
      inst.append(Text(Point(max_x/2,90), "YOUR BET WAS INVALID"))
      inst.append(Rectangle(Point(max_x/2-50,190), Point(max_x/2+50, 210)))
      inst.append(Text(Point(max_x/2, 200), 'TRY AGAIN'))
      for item in inst:
        item.draw(p_win)
      p_win.getMouse()
      for item in inst:
        item.undraw()
   #Shows game over
   def show_game_over(p_win):
      inst = []
      inst.append(Text(Point(max_x/2,90), "YOU ARE OUT OF MONEY"))
      inst.append(Rectangle(Point(max_x/2-50,190), Point(max_x/2+50, 210)))
      inst.append(Text(Point(max_x/2, 200), 'QUIT'))
      for item in inst:
        item.draw(p_win)
      p_win.getMouse()
      for item in inst:
        item.undraw()


   # M A I N and balances along with random outputs
   #################################################

   dice = []
   for d in range(0,3):
     dice.append(dice_t(max_x/2-90+d*60,5))

   balance = 100
   def_bet = 10
   while ( balance > 0 ):
     bet_invalid = True
     while (bet_invalid):
       bet = get_bet(win,balance,def_bet)
       if (bet>=1) and (bet<=balance):
         bet_invalid = False
       else:
         show_bet_invalid(win)
     def_bet = bet
     rolls = []
     for r in range(0,3):
       roll = randrange(1, 7)
       dice[r].draw(win,roll)
       rolls.append(roll)
     winnings = check_winner(rolls) * bet
     balance += winnings
     show_winnings(win, winnings)
     for r in range(0,3):
       dice[r].undraw()
   show_game_over(win)

main()
导入图形
从图形导入*
从随机输入范围
最大x=500
最大值=300
win=GraphWin(“骰子卷”,最大x,最大y)
#驱动程序
def main():
类dots():
#画点
定义初始值(self,p_x=0,p_y=0,p_s=50):
self.m_x=p_x
self.m_y=p_y
self.m_dice_size=p_s
self.m_项目=[]
圆点大小=4
x=自我m_x
y=self.m_y
s=self.m_骰子大小
d=s/4
self.m_items.append(圆(点(x+2*d,y+2*d),点大小))
self.m_items.append(圆(点(x+1*d,y+1*d),点大小))
self.m_items.append(圆(点(x+1*d,y+2*d),点大小))
self.m_items.append(圆(点(x+1*d,y+3*d),点大小))
self.m_items.append(圆(点(x+3*d,y+1*d),点大小))
self.m_items.append(圆(点(x+3*d,y+2*d),点大小))
self.m_items.append(圆(点(x+3*d,y+3*d),点大小))
对于self.m_项目中的dot:
圆点设置填充(“黑色”)
#根据随机值显示三个骰子图像
def显示骰子(自身):
返回(self.m\x,self.m\y,self.m\s)
def undraw(自身):
对于self.m_项目中的dot:
dot.undraw()
#抽骰子
def抽签(自我、p_赢、p_数):
对于self.m_项目中的dot:
dot.undraw()
如果(p_num==1):
self.m_项目[0]。抽签(p_-win)
elif(p_num==2):
self.m_项目[3]。抽签(p_-win)
self.m_items[4]。抽签(p_-win)
elif(p_num==3):
self.m_项目[0]。抽签(p_-win)
self.m_项目[3]。抽签(p_-win)
self.m_items[4]。抽签(p_-win)
elif(p_num==4):
self.m_项目[1]。抽签(p_-win)
self.m_项目[3]。抽签(p_-win)
self.m_items[4]。抽签(p_-win)
self.m_项目[6]。抽签(p_-win)
elif(p_num==5):
self.m_项目[0]。抽签(p_-win)
self.m_项目[1]。抽签(p_-win)
self.m_项目[3]。抽签(p_-win)
self.m_items[4]。抽签(p_-win)
self.m_项目[6]。抽签(p_-win)
elif(p_num==6):
self.m_项目[1]。抽签(p_-win)
self.m_items[2]。抽签(p_-win)
self.m_项目[3]。抽签(p_-win)
self.m_items[4]。抽签(p_-win)
self.m_项目[5]。抽签(p_-win)
self.m_项目[6]。抽签(p_-win)
#准备下一卷
类骰子:
定义初始化(self,x=0,y=0):
self.m_x=x
self.m_y=y
self.m_s=50
self.m_项=矩形(点(self.m_x,self.m_y),点(self.m_x+self.m_s,self.m_y+self.m_s))
self.m_item.setFill('白色')
self.m_点=点(self.m_x,self.m_y,self.m_s)
def显示骰子(自身):
返回(self.m\x,self.m\y,self.m\s)
def draw_die(self,p_win):
self.m_item.undraw()
self.m_item.draw(p_win)
def抽签(自我、p_赢、p_数):
自抽式模具(p_win)
self.m_dots.draw(p_win,p_num)
def undraw(自身):
self.m_item.undraw()
self.m_dots.undraw()
#盈亏计算
def check_winner(p_rolls=[]):
最后一个=无
总数=0
三重=真
对于p_辊中的r:
如果(最后一个!=无)和(最后一个!=r):
三重=假
最后=r
总数+=r
如果(总计=3)或(总计=18):
返回10
elif(总计=4)或(总计=17):
返回5
elif(三重==真):
返回2
返回-1
#文本和说明/规则
def get_bet(p_win、p_balance、p_def_bet):
inst=[]
inst.append(文本(点数(max_x/2,20),“下注:”)
仪器附加(文本(点(最大x/2,40),“平衡:+str(p_平衡)))
指令附加(文本(点(max_x/2,70),“规则:”)
inst.append(文本(点数(max_x/2,90),“如果你总共掷3或18个骰子,你的赌注赢款将是你赌注的10倍。”)
inst.append(文本(Point(max_x/2110),“如果您总共掷4或17,您的赌注赢款将是您的赌注的5倍。”)
inst.append(文本(Point(max_x/2130),“如果您在3和18之外再掷三倍,您的赌注赢款将是您的赌注的2倍。”)
inst.append(文本(Point(max_x/2150),“如果您掷其他任何东西,您将输掉赌注”。)
指令附加(矩形(点(max_x/2-59190)、点(max_x/2+59210)))
inst.append(文本(点(max_x/2200),‘点击滚动’)
对于仪表中的项目:
项目.抽签(p_-win)
bet_text=str(p_def_bet)
下注输入=输入(点数(最大x/2+100,20),5)
bet_input.setText(bet_文本)
下注输入抽奖(p_赢)
p_win.getMouse()
bet\u text=bet\u input.getText()
bet=int(bet\u文本)
bet_input.undraw()
对于仪表中的项目:
项目.undraw()
回注
#显示赢款、检查赢家、更新总数并返回更新后的总数
def show_Winning(p_win,p_Winning):
inst=[]
inst.append(文本(点数(max_x/2,90),“您的奖金:”+str(奖金)))
指令附加(矩形(点(最大x/2-50190)、点(最大x/2+50210)))
inst.append(文本(点(max_x/2200),“再次播放”))
对于仪表中的项目:
项目.抽签(p_-win)
p_win.getMouse()
对于仪表中的项目:
项目.undraw()
#显示赌注
def show_bet_无效(p_win):
inst=[]
inst.append(文本(点数(max_x/2,90),“您的赌注无效”))
指令附加(矩形(点(最大x/2-50190)、点(最大x/2+50210)))
inst.append(文本(点(max_x/2200),“重试”))
对于仪表中的项目:
项目.抽签(p_-win)
p_win.getMouse()
对于仪表中的项目:
项目.undraw()
#比赛结束
def显示游戏结束(p_赢):
inst=[]
inst.append(文本(点(max_x/2,90),“你没钱了”))
指令附加(R)
class Rect:

    """A rectangle identified by two points.

    The rectangle stores left, top, right, and bottom values.

    Coordinates are based on screen coordinates.

    origin                               top
       +-----> x increases                |
       |                           left  -+-  right
       v                                  |
    y increases                         bottom

    set_points  -- reset rectangle coordinates
    contains  -- is a point inside?
    overlaps  -- does a rectangle overlap?
    top_left  -- get top-left corner
    bottom_right  -- get bottom-right corner
    expanded_by  -- grow (or shrink)
    """

    def __init__(self, pt1, pt2):
        """Initialize a rectangle from two points."""
        self.set_points(pt1, pt2)

    def set_points(self, pt1, pt2):
        """Reset the rectangle coordinates."""
        (x1, y1) = (pt1.x, pt1.y)
        (x2, y2) = (pt2.x, pt2.y)
        self.left = min(x1, x2)
        self.top = min(y1, y2)
        self.right = max(x1, x2)
        self.bottom = max(y1, y2)

    def contains(self, pt):
        """Return true if a point is inside the rectangle."""
        x,y = pt.x,pt.y
        return (self.left <= x <= self.right and
                self.top <= y <= self.bottom)

    def overlaps(self, other):
        """Return true if a rectangle overlaps this rectangle."""
        return (self.right > other.left and self.left < other.right and
                self.top < other.bottom and self.bottom > other.top)

    def top_left(self):
        """Return the top-left corner as a Point."""
        return Point(self.left, self.top)

    def bottom_right(self):
        """Return the bottom-right corner as a Point."""
        return Point(self.right, self.bottom)

    def expanded_by(self, n):
        """Return a rectangle with extended borders.

        Create a new rectangle that is wider and taller than the
        immediate one. All sides are extended by "n" points.
        """
        p1 = Point(self.left-n, self.top-n)
        p2 = Point(self.right+n, self.bottom+n)
        return Rect(p1, p2)

    def __str__( self ):
        return "<Rect (%s,%s)-(%s,%s)>" % (self.left,self.top,
                                           self.right,self.bottom)

    def __repr__(self):
        return "%s(%r, %r)" % (self.__class__.__name__,
                               Point(self.left, self.top),
                               Point(self.right, self.bottom))
def inRec(ms, rec):
    """
    ms is the mouse,
    rec is the rectangle cords.
    """
    p = Point(ms.x, ms.y)
    return rec.contains(p)
   while ( balance > 0 ):
     bet_invalid = True
     while (bet_invalid):
       bet = get_bet(win,balance,def_bet)
       if (bet>=1) and (bet<=balance):
         bet_invalid = False
       else:
         show_bet_invalid(win)
     def_bet = bet
     mouse = mouse = win.getMouse()
     if not inRec(mouse, checkRec):
         return 1
     rolls = []
     for r in range(0,3):
       roll = randrange(1, 7)
       dice[r].draw(win,roll)
       rolls.append(roll)
     winnings = check_winner(rolls) * bet
     balance += winnings
     show_winnings(win, winnings)
     for r in range(0,3):
       dice[r].undraw()
import graphics
from graphics import *
from random import randrange


class Rect:

    """A rectangle identified by two points.

    The rectangle stores left, top, right, and bottom values.

    Coordinates are based on screen coordinates.

    origin                               top
       +-----> x increases                |
       |                           left  -+-  right
       v                                  |
    y increases                         bottom

    set_points  -- reset rectangle coordinates
    contains  -- is a point inside?
    overlaps  -- does a rectangle overlap?
    top_left  -- get top-left corner
    bottom_right  -- get bottom-right corner
    expanded_by  -- grow (or shrink)
    """

    def __init__(self, pt1, pt2):
        """Initialize a rectangle from two points."""
        self.set_points(pt1, pt2)

    def set_points(self, pt1, pt2):
        """Reset the rectangle coordinates."""
        (x1, y1) = (pt1.x, pt1.y)
        (x2, y2) = (pt2.x, pt2.y)
        self.left = min(x1, x2)
        self.top = min(y1, y2)
        self.right = max(x1, x2)
        self.bottom = max(y1, y2)

    def contains(self, pt):
        """Return true if a point is inside the rectangle."""
        x,y = pt.x,pt.y
        return (self.left <= x <= self.right and
                self.top <= y <= self.bottom)

    def overlaps(self, other):
        """Return true if a rectangle overlaps this rectangle."""
        return (self.right > other.left and self.left < other.right and
                self.top < other.bottom and self.bottom > other.top)

    def top_left(self):
        """Return the top-left corner as a Point."""
        return Point(self.left, self.top)

    def bottom_right(self):
        """Return the bottom-right corner as a Point."""
        return Point(self.right, self.bottom)

    def expanded_by(self, n):
        """Return a rectangle with extended borders.

        Create a new rectangle that is wider and taller than the
        immediate one. All sides are extended by "n" points.
        """
        p1 = Point(self.left-n, self.top-n)
        p2 = Point(self.right+n, self.bottom+n)
        return Rect(p1, p2)

    def __str__( self ):
        return "<Rect (%s,%s)-(%s,%s)>" % (self.left,self.top,
                                           self.right,self.bottom)

    def __repr__(self):
        return "%s(%r, %r)" % (self.__class__.__name__,
                               Point(self.left, self.top),
                               Point(self.right, self.bottom))
def inRec(ms, rec):
    """
    ms is the mouse,
    rec is the rectangle cords.
    """
    p = Point(ms.x, ms.y)
    return rec.contains(p)

max_x = 500
max_y = 300
win = GraphWin("Dice Rolls", max_x,max_y)

checkRec = Rect(Point(max_x/2 - 59, 180), Point(max_x/2+59, 230))

#drives the program
def main():
   class dots():
       #Drawn dots
     def __init__(self,p_x=0,p_y=0,p_s=50):
       self.m_x  = p_x
       self.m_y  = p_y
       self.m_dice_size = p_s
       self.m_items = []
       dot_size = 4
       x = self.m_x
       y = self.m_y
       s = self.m_dice_size
       d = s/4
       self.m_items.append(Circle(Point(x+2*d, y+2*d), dot_size))
       self.m_items.append(Circle(Point(x+1*d, y+1*d), dot_size))
       self.m_items.append(Circle(Point(x+1*d, y+2*d), dot_size))
       self.m_items.append(Circle(Point(x+1*d, y+3*d), dot_size))
       self.m_items.append(Circle(Point(x+3*d, y+1*d), dot_size))
       self.m_items.append(Circle(Point(x+3*d, y+2*d), dot_size))
       self.m_items.append(Circle(Point(x+3*d, y+3*d), dot_size))
       for dot in self.m_items:
         dot.setFill('black')
        #Displays three dice images based on the random value
     def display_dice(self):
       return (self.m_x,self.m_y,self.m_s)
     def undraw(self):
       for dot in self.m_items:
         dot.undraw()
               #Drawn Dice
     def draw(self, p_win, p_num):
       for dot in self.m_items:
         dot.undraw()
       if (p_num==1):
         self.m_items[0].draw(p_win)
       elif (p_num==2):
         self.m_items[3].draw(p_win)
         self.m_items[4].draw(p_win)
       elif (p_num==3):
         self.m_items[0].draw(p_win)
         self.m_items[3].draw(p_win)
         self.m_items[4].draw(p_win)
       elif (p_num==4):
         self.m_items[1].draw(p_win)
         self.m_items[3].draw(p_win)
         self.m_items[4].draw(p_win)
         self.m_items[6].draw(p_win)
       elif (p_num==5):
         self.m_items[0].draw(p_win)
         self.m_items[1].draw(p_win)
         self.m_items[3].draw(p_win)
         self.m_items[4].draw(p_win)
         self.m_items[6].draw(p_win)
       elif (p_num==6):
         self.m_items[1].draw(p_win)
         self.m_items[2].draw(p_win)
         self.m_items[3].draw(p_win)
         self.m_items[4].draw(p_win)
         self.m_items[5].draw(p_win)
         self.m_items[6].draw(p_win)

   #Prepares for next roll
   class dice_t:
     def __init__(self,x=0,y=0):
       self.m_x = x
       self.m_y = y
       self.m_s = 50
       self.m_item = Rectangle(Point(self.m_x,self.m_y),Point(self.m_x+self.m_s,self.m_y+self.m_s))
       self.m_item.setFill('white')
       self.m_dots = dots(self.m_x,self.m_y,self.m_s)
     def display_dice(self):
       return (self.m_x,self.m_y,self.m_s)
     def draw_die(self, p_win):
       self.m_item.undraw()
       self.m_item.draw(p_win)
     def draw(self, p_win, p_num):
       self.draw_die(p_win)
       self.m_dots.draw(p_win,p_num)
     def undraw(self):
       self.m_item.undraw()
       self.m_dots.undraw()
   #Winnings and losing calculation
   def check_winner(p_rolls=[]):
      last = None
      total = 0
      triple = True
      for r in p_rolls:
        if (last!=None) and (last!=r):
          triple = False
        last = r
        total += r
      if (total==3) or (total==18):
        return 10
      elif (total==4) or (total==17):
        return 5
      elif (triple ==True):
        return 2
      return -1
   #Text and instructions/rules
   def get_bet(p_win,p_balance,p_def_bet):
      inst = []

      inst.append(Text(Point(max_x/2,20), "MAKE YOUR BET: "))
      inst.append(Text(Point(max_x/2,40), "BALANCE:"+str(p_balance)))
      inst.append(Text(Point(max_x/2,70), "Rules: "))
      inst.append(Text(Point(max_x/2,90), "If you roll a 3 or 18 in total your bet winnings will be 10x your bet."))
      inst.append(Text(Point(max_x/2,110), "If you roll a 4 or 17 in total your bet winnings will be 5x your bet."))
      inst.append(Text(Point(max_x/2,130), "If you roll triples besides a 3 and 18 your bet winnings will be 2x your bet."))
      inst.append(Text(Point(max_x/2,150), 'If you roll anything else, you lose your bet.'))
      inst.append(Rectangle(Point(max_x/2 - 59, 180), Point(max_x/2+59, 230)))
      inst.append(Text(Point(max_x/2, 200), 'CLICK TO ROLL'))
      for item in inst:
        item.draw(p_win)

      bet_text = str(p_def_bet)
      bet_input = Entry(Point (max_x/2+100, 20),5)
      bet_input.setText(bet_text)
      bet_input.draw(p_win)
      p_win.getMouse()
      bet_text = bet_input.getText()
      bet = int(bet_text)
      bet_input.undraw()
      for item in inst:
        item.undraw()
      return bet
   #Shows winnings, checks for winner, updates total, and returns the updated total
   def show_winnings(p_win, p_winnings):
      inst = []
      inst.append(Text(Point(max_x/2,90), "Your WINNINGS:"+str(winnings)))
      inst.append(Rectangle(Point(max_x/2-50,190), Point(max_x/2+50, 210)))
      inst.append(Text(Point(max_x/2, 200), 'PLAY AGAIN'))
      for item in inst:
        item.draw(p_win)
      p_win.getMouse()
      for item in inst:
        item.undraw()
   #Shows bet
   def show_bet_invalid(p_win):
      inst = []
      inst.append(Text(Point(max_x/2,90), "YOUR BET WAS INVALID"))
      inst.append(Rectangle(Point(max_x/2-50,190), Point(max_x/2+50, 210)))
      inst.append(Text(Point(max_x/2, 200), 'TRY AGAIN'))
      for item in inst:
        item.draw(p_win)
      p_win.getMouse()
      for item in inst:
        item.undraw()
   #Shows game over
   def show_game_over(p_win):
      inst = []
      inst.append(Text(Point(max_x/2,90), "YOU ARE OUT OF MONEY"))
      inst.append(Rectangle(Point(max_x/2-50,190), Point(max_x/2+50, 210)))
      inst.append(Text(Point(max_x/2, 200), 'QUIT'))
      for item in inst:
        item.draw(p_win)
      p_win.getMouse()
      for item in inst:
        item.undraw()


   # M A I N and balances along with random outputs
   #################################################

   dice = []
   for d in range(0,3):
     dice.append(dice_t(max_x/2-90+d*60,5))

   balance = 100
   def_bet = 10

   while ( balance > 0 ):
     bet_invalid = True
     while (bet_invalid):
       bet = get_bet(win,balance,def_bet)
       if (bet>=1) and (bet<=balance):
         bet_invalid = False
       else:
         show_bet_invalid(win)
     def_bet = bet
     mouse = mouse = win.getMouse()
     if not inRec(mouse, checkRec):
         return 1
     rolls = []
     for r in range(0,3):
       roll = randrange(1, 7)
       dice[r].draw(win,roll)
       rolls.append(roll)
     winnings = check_winner(rolls) * bet
     balance += winnings
     show_winnings(win, winnings)
     for r in range(0,3):
       dice[r].undraw()

   show_game_over(win)


main()