import pygame
import sys
from pygame.locals import *
import numpy as np
class Card(pygame.sprite.Sprite):

def __init__(self, x, y, card_state):    self.image = pygame.image.load("images/card.png")    width, height = self.image.get_size()    self.rect = (x, y, width, height)    # 切换卡片牌面    self.card_state = card_statedef update(self):    # 当牌面为 2 时显示哭脸    if self.card_state == 2:        self.image = pygame.image.load("images/cry.png")    if self.card_state == 3:        self.image = pygame.image.load("images/fuzong.png")        self.image = pygame.transform.scale(self.image, (100, 100))    if self.card_state == 4:        self.image = pygame.image.load("images/zong.jpg")        self.image = pygame.transform.scale(self.image, (100, 100))

class Game:

def __init__(self):    pygame.init()    self.screen = pygame.display.set_mode((900, 600))    pygame.display.set_caption("总裁翻牌")    self.clock = pygame.time.Clock()    self.card_nums = 28    self.points = self.all_point()    # 点击卡片记录数组    self.click_list = []    # 随机生成数组,[电子钱包](https://www.gendan5.com/wallet.html)中奖为1,不中奖为0    self.win_list = list(np.random.randint(0, 3, 28))def all_point(self):    passdef set_bg(self):    bg = pygame.image.load("images/bg.png")    # width, height = bg.get_size()    # 素材放大    # pygame.transform.scale(bg,(width,height))    self.screen.blit(bg, (0, 0))# 绘制牌子def set_card(self):    for i, num in enumerate(self.points):        x, y = num        card_state = 1        # 卡片是否被点击        if i in self.click_list:            card_state = 2        # 卡片是否被点击        if i in self.click_list and self.win_list[i] == 1:            card_state = 3        # 卡片是否被点击        if i in self.click_list and self.win_list[i] == 2:            card_state = 4        card = Card(x, y, card_state)        card.update()        self.screen.blit(card.image, card.rect)# 计算鼠标点击卡片def mouse_card(self, mosx, mosy):    for i, (x, y) in enumerate(self.points):        if (mosx >= x and mosx <= (x + 100)) and (mosy >= y and mosy <= (y + 100)):            print("翻牌,点到卡片序号为", i)            self.click_list.append(i)def run(self):    while True:        self.clock.tick(60)        for event in pygame.event.get():            if event.type == QUIT:                pygame.quit()                sys.exit()            if event.type == MOUSEBUTTONDOWN:                mosx, mosy = event.pos                self.mouse_card(mosx, mosy)        self.set_bg()        self.set_card()        pygame.display.update()

if name == '__main__':

g = Game()g.run()