吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1326|回复: 7
收起左侧

[Python 原创] 广东省车牌问答小程序

[复制链接]
Tony丶W 发表于 2024-6-22 00:30

创作缘由

近期被短视频的山东车牌洗脑后,觉得有必要记一下广东省内的车牌号码来自于哪个城市。所以就出现了这个小玩意。

程序玩法

windows双击打开后,根据问题输入对应的答案,回车即可提交答案,答对了会自动下一题,答错了会显示答案。底部会显示正确率和答题数。
题目是随机出现的,也可以手动切换下一题

程序截图


示图.png

程序代码

import sys
import random
from collections import deque
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton
from PyQt5.QtGui import QFont
from PyQt5.QtCore import Qt, QTimer

class GuangdongPlateGame(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
        self.plates = {
            "粤A": "广州", "粤B": "深圳", "粤C": "珠海", "粤D": "汕头", "粤E": "佛山",
            "粤F": "韶关", "粤G": "湛江", "粤H": "肇庆", "粤J": "江门", "粤K": "茂名",
            "粤L": "惠州", "粤M": "梅州", "粤N": "汕尾", "粤P": "河源", "粤Q": "阳江",
            "粤R": "清远", "粤S": "东莞", "粤T": "中山", "粤U": "潮州", "粤V": "揭阳",
            "粤W": "云浮", "粤X": "顺德", "粤Y": "南海", "粤Z": "港澳",
            "粤O": "机关单位"
        }
        self.current_plate = ""
        self.timer = QTimer(self)
        self.timer.setSingleShot(True)
        self.timer.timeout.connect(self.next_question)
        self.total_questions = 0
        self.correct_answers = 0
        self.wrong_answers = 0
        self.recent_plates = deque(maxlen=3)  # 用于存储最近3次出现的车牌
        self.next_question()

    def initUI(self):
        layout = QVBoxLayout()

        self.question_label = QLabel()
        self.question_label.setAlignment(Qt.AlignCenter)
        self.question_label.setFont(QFont('Arial', 24))
        layout.addWidget(self.question_label)

        self.answer_input = QLineEdit()
        self.answer_input.setFont(QFont('Arial', 18))
        self.answer_input.returnPressed.connect(self.check_answer)
        layout.addWidget(self.answer_input)

        self.result_label = QLabel()
        self.result_label.setAlignment(Qt.AlignCenter)
        self.result_label.setFont(QFont('Arial', 16))
        layout.addWidget(self.result_label)

        self.stats_label = QLabel()
        self.stats_label.setAlignment(Qt.AlignCenter)
        self.stats_label.setFont(QFont('Arial', 14))
        layout.addWidget(self.stats_label)

        self.next_button = QPushButton('下一题')
        self.next_button.clicked.connect(self.next_question)
        layout.addWidget(self.next_button)

        self.setLayout(layout)
        self.setGeometry(300, 300, 400, 300)
        self.setWindowTitle('广东车牌游戏')
        self.show()

    def next_question(self):
        available_plates = [plate for plate in self.plates.keys() if plate not in self.recent_plates]
        if not available_plates:
            available_plates = list(self.plates.keys())

        self.current_plate = random.choice(available_plates)
        self.recent_plates.append(self.current_plate)

        self.question_label.setText(f"请输入 {self.current_plate} 对应的地区:")
        self.answer_input.clear()
        self.result_label.clear()
        self.answer_input.setEnabled(True)
        self.answer_input.setFocus()
        self.update_stats()

    def check_answer(self):
        user_answer = self.answer_input.text().strip()
        correct_answer = self.plates[self.current_plate]
        self.total_questions += 1
        if user_answer == correct_answer:
            self.result_label.setText("答对了!")
            self.correct_answers += 1
            self.answer_input.setEnabled(False)
            self.timer.start(1000)
        else:
            self.result_label.setText(f"答错了。正确答案是:{correct_answer}")
            self.wrong_answers += 1
        self.update_stats()

    def update_stats(self):
        accuracy = (self.correct_answers / self.total_questions * 100) if self.total_questions > 0 else 0
        stats_text = f"总题数: {self.total_questions} | 正确: {self.correct_answers} | 错误: {self.wrong_answers} | 正确率: {accuracy:.2f}%"
        self.stats_label.setText(stats_text)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = GuangdongPlateGame()
    sys.exit(app.exec_())

源码编译步骤

  1. Python确认安装了PyQt5和PyInstaller
    pip install PyQt5 pyinstaller
  2. 进行编译操作
    pyinstaller --onefile --windowed guangdong_plate_game.py

附件

懒人直接下载链接:https://wwk.lanzouj.com/io34622e0uti

免费评分

参与人数 3吾爱币 +9 热心值 +2 收起 理由
萌哒哒小乐天 + 1 鲁A济南车,鲁B青岛的~
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
CN966 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

小丑恶人 发表于 2024-6-22 10:17
小玩意还可以啊
ZhjhJZ 发表于 2024-6-22 10:47
天轩科技 发表于 2024-6-22 11:25
ZhjhJZ 发表于 2024-6-22 10:47
这个很好,但不够洗脑

我知道你要说什么。你一定要提山东那首歌
a2811260 发表于 2024-6-22 15:51
这个蛮有意思的。谢谢
ZhjhJZ 发表于 2024-6-22 16:08
天轩科技 发表于 2024-6-22 11:25
我知道你要说什么。你一定要提山东那首歌

洗脑,传播就快,给人印象深刻
NIEMINGYAN95188 发表于 2024-6-22 18:25
不错不错值得拥有,感谢老铁
33088 发表于 2024-6-22 19:39
挺有意思的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-13 08:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表