用户:名称重复查看:0 回复:1 评论:0 创建时间:2021-03-11T20:47:20
【作品展示】

【作品介绍】
点两个牌,然后如果形状不一样,就会重新翻回去,如果一样就显示动物,最后全都显示就胜利,还加入了倒计时功能。以作者的能力无法解决的BUG:
1、成功翻过去的卡牌和没有的翻过去的卡点击,就会把成功翻过去的再翻过去。
【作品源代码】
import sys
from PySide2.QtCore import *
from PySide2.QtGui import *
from ui_carts import Ui_Carts
from PySide2.QtWidgets import *
class MYCARDS(QMainWindow, Ui_Carts):
def __init__(self):
super().__init__()
self.setupUi(self)
self.init_button()
self.init_img()
self.show()
self.clicked_nam = 0
self.match_img = {1: {"pbtn": None, "pbtn_img": None}, 2: {"pbtn": None, "pbtn_img": None}}
self.first_clicked = True
self.time = 0
self.right_count = 0
self.pbtn_img.buttonClicked.connect(self.pbtn_func)
def init_button(self):
pbtn_list = self.pbtn_img.buttons()
for btn in pbtn_list:
btn.setText("")
btn.setIcon(QIcon("bg.png"))
btn.setIconSize(QSize(150, 150))
btn.setCheckable(True)
def init_img(self):
import os
import random
images_type = [".png", ".jpg", ".bmp", ".jpeg"]
files = os.listdir("images")
all_imgs = []
for file in files:
ext = os.path.splitext(file)[-1]
if ext in images_type:
all_imgs.append("images" + os.sep + file)
print(all_imgs)
random_imgs = random.sample(all_imgs, 6)
grid_imgs = random_imgs + random_imgs
random.shuffle(grid_imgs)
pbtn_list = self.pbtn_img.buttons()
self.grids = dict(zip(pbtn_list,grid_imgs))
def pbtn_func(self):
if self.first_clicked:
self.first_clicked = False
self.timer = QTimer()
self.timer.timeout.connect(self.update_time)
self.timer.start(1)
if self.clicked_nam < 2:
QApplication.processEvents()
pbtn = self.pbtn_img.checkedButton()
if pbtn != self.match_img[1]["pbtn"] and pbtn in self.pbtn_img.buttons():
self.clicked_nam += 1
pbtn.setIcon(QIcon(self.grids[pbtn]))
self.match_img[self.clicked_nam]["pbtn"] = pbtn
self.match_img[self.clicked_nam]["pbtn_img"] = self.grids[pbtn]
timer = QTimer()
timer.singleShot(250, self.judge)
def judge(self):
if self.clicked_nam == 2:
self.clicked_nam = 0
if self.match_img[1]["pbtn_img"] != self.match_img[2]["pbtn_img"]:
self.match_img[1]["pbtn"].setIcon(QIcon("bg.png"))
self.match_img[2]["pbtn"].setIcon(QIcon("bg.png"))
else:
self.right_count += 1
if self.right_count == 6:
self.timer.stop()
self.match_img[1]["pbtn"] = self.match_img[2]["pbtn"] = None
def update_time(self):
self.time += 1
self.lcd_time.display(self.time)
print("已优化完成")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MYCARDS()
print("已优化完成")
sys.exit(app.exec_())
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn