找色块小游戏

python find difference colored grid game找色块小游戏

python find difference colored grid game找色块小游戏

"""
   找色块小游戏。本程序显示一些颜色块,其中有一个颜色有点不同,请迅速把它找出来!
   这个游戏代码主要来源于翻转格子版本2的代码,不过把它做成游戏形式了。
   读者可以把它继续做成多关卡游戏。如限定时间,如有三次机会等等。
   
"""
__author__ = '李兴球'
__date__ = '2019/10/5'

from turtle import *
from random import choice

def main():
    
    """主要执行函数"""
    
    width,height = 600,600

    screen = Screen()
    screen.colormode(255)
    screen.setup(width+100,height+100)
    screen.tracer(0,0)

    t = Turtle(visible=False)   
    t.penup()
    t.color('gray')
    t.sety(height/2-10)
    ft = ('黑体',20,'normal')
    t.write("请找出不同颜色块",align='center',font=ft)
        
    rects = make_rects(10,10,500,500) # 生成10行10列的矩形

    normal_color = (0,255,0)          # 正常矩形的填充颜色 
    diff_color = (100,255,100)        # 不同样的那个矩形的颜色
    
    [r.draw(t,normal_color) for r in rects] # 用海龟t把每个矩形画出来
    r = choice(rects)                       # 随机挑一个矩形
    r.draw(t,diff_color)                    # 把这个矩形换成不同的颜色 

    def event_handler(x,y):
        """单击鼠标时进行以下处理"""
        for r in rects:
            if r.collidepoint((x,y)): # 判断鼠标单击点是否在矩形r内           
               if r.c == diff_color : # 如果这个矩形的颜色刚好是不同的
                   t = Turtle(visible=False) # 新建一个海龟
                   t.write("恭喜,你找到了。",align='center',font=ft)
               i = str(rects.index(r)) # 只是为了缩短下一行代码长度
               screen.title(str(x) + "," + str(y) + ",index=" + i)
               screen.update()
               return
        screen.title(str(x) + "," + str(y))
        
    screen.onclick(event_handler)

    screen.mainloop()

class Rect:
    """定义矩形类"""
    def __init__(self,x,y,width,height):
        """
           x,y:左上角坐标
           width,height:宽度和高度
        """
        self.x = x
        self.y = y
        self.width = width
        self.height = height
        self.right = x + width     # 最右边x坐标
        self.bottom = y - height   # 最下边y坐标        
    

You must log in to read the rest of this article. Please log in or register as a user.