• 大小: 0.71M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2024-05-11
  • 语言: Python
  • 标签: 连连看  

资源简介

pygame 编写连连看

资源截图

代码片段和文件信息

“““
 Name: 连连看游戏
 Athor: 卢华东
 Email: luhuadong@163.com
 Date: 2018-07-07
 Description: 哎呀,反正就是连连看啦

“““

import sys time
import math random
import pygame
from pygame.locals import *

# 全局的设置类
class Settings:

    def __init__(self):
        # 定义游戏窗口大小,为背景图片的一半
        self.screen_size = (self.screen_width self.screen_height) = (800 480)
        self.game_size = (self.game_row self.game_col) = (6 10)
        self.map_total = self.game_row * self.game_col
        self.element_num = 12
        self.bg_color = (220 220 220)
        self.title = ‘Pig Pig 连连看‘
        self.win_image = ‘./images/you_win.png‘

        self.grid_size = 80
        self.scale_size = (76 76)

        self.points = []



# 实例化设置对象
settings = Settings()

# 图像列表映射
map_list = []
#global map_list
image_list = []


# 图片按钮
class ImageBtn:

    __checkable = True
    __checked = False

    def __init__(self screen image_path x y number element):
        self.x = x
        self.y = y
        self.element = element
        self.number = number
        self.screen = screen
        self.image = pygame.image.load(image_path)

        # 因为图片原始大小为 200x200,所以要进行缩放
        self.image = pygame.transform.scale(self.image settings.scale_size)

    def __del__(self):
        pass

    def display(self):
        # 描边
        “““
        if self.__checked:
            #self.image = pygame.transform.laplacian(self.image)
            pygame.draw.rect(self.image (0205205) (00self.image.get_width()-1self.image.get_height()-1) 2)
        “““

        “““
        if not self.__checkable:
            self.image.fill((255 255240))
        “““
        if self.__checked:
            pygame.draw.rect(self.image (0205205255) (00self.image.get_width()-1self.image.get_height()-1) 2)
        else:
            pygame.draw.rect(self.image (02052050) (00self.image.get_width()-1self.image.get_height()-1) 2)

        self.screen.blit(self.image (self.x self.y))

    def hide(self):
        self.__checked = False
        self.__checkable = False
        # 图片不可视
        #self.image.set_alpha(255)
        self.image.fill((255 255240))

    def is_checkable(self):
        return self.__checkable

    def click(self):
        self.__checked = not self.__checked
        return self.__checked

    def reset(self):
        self.__checked = False

    def get_geometry(self):
        return (int(self.x) int(self.y) settings.scale_size[0] settings.scale_size[1])



# 水平扫描
def horizontal_scan(points):
    “““
    水平标定

    以 p1 和 p2 所在的两个行作为基准线,然后用垂直线在有效范围内扫描,
    一旦发现可行路径,直接返回。

      hLine1  和   hLine2   分别是扫描的上边线和下边线
    leftLimit 和 rightLimit 分别是扫描的左边线和右边线
    “““
    column = settings.game_col
    p1_x = int(points[0].number % column)
    p1_y = int(points[0].number / column)
    p2_x = int(points[1].number % column)
    p2_y = int(points[1].number / column)

    # 如果 p1 和 p2 在同一行,则不符合要求
    if p1_y == p2_y:
        return False

    print(“Horizontal Scanning ...“)

    # 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-09-10 23:19  images\
     文件         284  2020-09-10 23:19  images\element_0.png
     文件       83693  2020-09-10 23:19  images\element_1.png
     文件       63794  2020-09-10 23:19  images\element_10.png
     文件       26292  2020-09-10 23:19  images\element_11.png
     文件       62496  2020-09-10 23:19  images\element_12.png
     文件       58338  2020-09-10 23:19  images\element_2.png
     文件       40689  2020-09-10 23:19  images\element_3.png
     文件       22883  2020-09-10 23:19  images\element_4.png
     文件       36238  2020-09-10 23:19  images\element_5.png
     文件       34105  2020-09-10 23:19  images\element_6.png
     文件       27157  2020-09-10 23:19  images\element_7.png
     文件       47194  2020-09-10 23:19  images\element_8.png
     文件       39296  2020-09-10 23:19  images\element_9.png
     文件       41533  2020-09-10 23:19  images\icon.png
     文件       41533  2020-09-10 23:19  images\test.png
     文件      108228  2020-09-10 23:19  images\you_win.png
     文件       15221  2020-09-10 23:19  link_up.py

评论

共有 条评论