高考加油(Python+HTML)

news2025/6/1 4:21:32

前言

询问DeepSeek根据自己所学到的知识来生成多个可执行的代码,为高考学子加油。最开始生成的都会有点小问题,还是需要自己调试一遍,下面就是完整的代码,当然了最后几天也不会有多少人看,都在专心的备考。

Python励志桌面程序

pip install pyqt5

通过按下ESC键进行退出。 

# 文件名:inspire_screensaver.py
import sys
import random
import time

from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtCore import Qt, QTimer, QPoint
from PyQt5.QtGui import QFont, QColor, QPainter


class Screensaver(QWidget):
    def __init__(self):
        super().__init__()
        self.texts = [
            "你考的不是试,是前途和暮年的欢喜",
            "关关难过关关过,前路漫漫亦灿灿",
            "愿你合上笔盖的刹那,有侠客收剑入鞘的骄傲",
            "笔锋所指处,皆是心之所向,愿合笔时如收刀入鞘般骄傲!",
            "十二载星月为伴,今朝试锋,定当光芒万丈",
            "你的考卷终将化作通向理想大学的云梯,拾级而上终见星辰",
            "此刻奋笔疾书的每个字,都是未来人生的精彩伏笔",
            "乾坤未定,你我皆是奔腾向前的黑马",
            "愿提笔时惊风落雨,收卷日笑看云起",
            "寒窗墨香终成剑,一朝出鞘动四方",
            "且将新火试新茶,少年仗剑趁年华",
            "鹏北海,凤朝阳,今携书剑路茫茫",
            "春风得意马蹄疾,一日看尽长安花",
            "不必追求完美答卷,只需写出青春无悔",
            "错的每道题都是为了遇见对的人,对的每道题都是为了遇见更好的自己",
            "高考只是人生车站,从容下车后还有万里山河待你丈量",
            "备好2B铅笔,也请带上百分百的勇气",
            "早餐要吃好,准考证别忘带,你平稳发挥就是最棒状态",
            "当交卷铃声响起,整个世界都会为你的坚持鼓掌",
            "把三年青春浓缩成笔尖锋芒,刺破迷茫照亮远方",
            "此刻你不仅是考生,更是手握命运改写权的英雄",
            "那些熬过的夜终将化作星光,铺就你的状元之路",
            "少年应有鸿鹄志,当骑骏马踏平川",
            "愿九月踏入的校园,正是你此刻心驰神往的方向",
            "今日考场方寸地,明日天地任尔行",
            "这场考试过后,你选择的世界正在向你奔来",
            "现在写下的每个答案,都在勾勒未来人生的轮廓",
            "金榜题名时,勿忘与恩师共赏这漫天彩霞",
            "请相信:你的long类型努力终将转化为double型成功",
            "人生不是单选题,但这次请坚定选择自己的最优解",
            "用三年的函数积累,求导出最灿烂的极值人生",
            "当交卷铃声如约而至,便是你开启新副本的入场音效",
            "这场考试的隐藏奖励是:解锁无限可能的人生DLC"
        ]
        self.initUI()

        # 初始化存储数组
        self.positions = []  # 存储(坐标, 颜色, 文本)
        self.time_stamps = []  # 对应生成时间戳
        self.directions = []  # 移动方向向量

        # 运动参数配置
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.update)
        self.timer.start(40)  # 刷新间隔(ms)
        self.fade_speed = 1.5  # 淡出速度
        self.max_trails = 15  # 最大点数
        self.move_speed = 2  # 移动速度(像素/帧)

    def initUI(self):
        self.setWindowTitle("高考加油屏保")
        self.showFullScreen()
        self.setCursor(Qt.BlankCursor)
        self.setStyleSheet("background: black;")

        # 退出提示标签(动态适应分辨率)
        self.status_label = QLabel("按 ESC 退出", self)
        self.status_label.setStyleSheet("color: white; font-size: 16px;")
        self.status_label.adjustSize()
        self.status_label.move(10, self.height() - self.status_label.height() - 10)

    def paintEvent(self, event):
        painter = QPainter(self)
        painter.setRenderHint(QPainter.Antialiasing)
        current_time = time.time()
        text_metrics = painter.fontMetrics()
        text_font = QFont("微软雅黑", 20)  # 字号从默认调整为20
        painter.setFont(text_font)

        # === 运动计算 ===
        survived_indices = []
        for idx in range(min(len(self.positions), len(self.time_stamps), len(self.directions))):
            age = current_time - self.time_stamps[idx]
            alpha = 255 - int(self.fade_speed * age * 30)

            if alpha > 0:  # 保留未消失的点
                survived_indices.append(idx)

        # 更新存活点数据(严格同步截断)
        self.positions = [self.positions[i] for i in survived_indices][:self.max_trails]
        self.directions = [self.directions[i] for i in survived_indices][:self.max_trails]
        self.time_stamps = [self.time_stamps[i] for i in survived_indices][:self.max_trails]

        # === 移动计算 ===
        new_positions = []
        new_directions = []
        for idx in range(len(self.positions)):
            (pos, color, text) = self.positions[idx]
            dx, dy = self.directions[idx]

            # 计算新坐标(带边界约束)
            text_width = text_metrics.width(text)
            text_height = text_metrics.height()
            new_x = pos.x() + dx
            new_y = pos.y() + dy

            # 边界反弹处理
            if new_x < 0 or new_x > (self.width() - text_width):
                dx = -dx * 0.8
                new_x = max(0, min(new_x, self.width() - text_width))
            if new_y < text_height or new_y > (self.height() - text_height):
                dy = -dy * 0.8
                new_y = max(text_height, min(new_y, self.height() - text_height))

            new_positions.append((QPoint(int(new_x), int(new_y)), color, text))
            new_directions.append((dx, dy))

        # 更新数据
        self.positions = new_positions
        self.directions = new_directions

        # === 生成新点 ===
        while len(self.positions) < self.max_trails:
            new_text = random.choice(self.texts)
            text_width = text_metrics.width(new_text)
            text_height = text_metrics.height()

            # 安全坐标生成(带异常处理)
            try:
                safe_x = random.randint(0, self.width() - text_width)
                safe_y = random.randint(text_height, self.height() - text_height)
            except ValueError:
                safe_x = 0
                safe_y = text_height

            self.positions.append((
                QPoint(safe_x, safe_y),
                QColor(
                    random.randint(150, 255),
                    random.randint(150, 255),
                    random.randint(150, 255)
                ),
                new_text
            ))
            self.directions.append((
                random.uniform(-self.move_speed, self.move_speed),
                random.uniform(-self.move_speed, self.move_speed)
            ))
            self.time_stamps.append(time.time())

        # === 绘制所有点 ===
        for (pos, color, text), ts in zip(self.positions, self.time_stamps):
            age = current_time - ts
            alpha = max(0, 255 - int(self.fade_speed * age * 50))

            painter.setPen(QColor(
                color.red(),
                color.green(),
                color.blue(),
                alpha
            ))
            painter.drawText(pos, text)

    def keyPressEvent(self, event):
        if event.key() == Qt.Key_Escape:
            self.close()


if __name__ == "__main__":
    # Windows系统内存优化
    if sys.platform == 'win32':
        import ctypes

        ctypes.windll.kernel32.SetProcessWorkingSetSize(-1, 0x100000, 0x200000)

    app = QApplication(sys.argv)
    ex = Screensaver()
    sys.exit(app.exec_())

Vue3互动网页

时间设置的是const target = new Date('2025-06-07T09:00:00')

<!-- 文件结构 -->
<!-- index.html -->
<!DOCTYPE html>
<html>

<head>
    <title>高考能量站</title>
    <script src="https://unpkg.com/vue@3"></script>
    <style>
        body {
            margin: 0;
            background: linear-gradient(45deg, #1a237e, #4a148c);
            height: 100vh;
            overflow: hidden;
        }

        #app {
            display: flex;
            flex-direction: column;
            align-items: center;
            color: white;
        }

        .countdown {
            font-size: 3em;
            text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
        }

        .btn {
            padding: 15px 30px;
            background: #00e676;
            border: none;
            border-radius: 25px;
            font-size: 1.2em;
            cursor: pointer;
            transition: transform 0.3s;
        }

        canvas {
            position: fixed;
            top: 0;
            left: 0;
            pointer-events: none;
        }
    </style>
</head>

<body>
    <div id="app">
        <h1>高考能量补给站</h1>
        <div class="countdown">{{ days }}天{{ hours }}时{{ minutes }}分{{ second }}秒</div>
        <button class="btn" @click="sendConfetti">获取好运</button>
        <canvas ref="canvas"></canvas>
    </div>

    <script>
        const { createApp, ref, onMounted } = Vue;

        createApp({
            setup() {
                const canvas = ref(null)
                const days = ref(0)
                const hours = ref(0)
                const minutes = ref(0)
                const second = ref(0)
                let ctx = null

                // 倒计时计算
                const updateTime = () => {
                    // 高考时间(今年是25年了)
                    const target = new Date('2025-06-07T09:00:00')
                    const now = new Date()
                    const diff = target - now

                    days.value = Math.floor(diff / (1000 * 60 * 60 * 24))
                    hours.value = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))
                    minutes.value = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60))
                    second.value = Math.floor((diff % (1000 * 60)) / 1000)
                }

                // 彩纸特效
                const sendConfetti = () => {
                    for (let i = 0; i < 50; i++) {
                        const x = Math.random() * canvas.value.width
                        const y = Math.random() * canvas.value.height
                        ctx.fillStyle = `hsl(${Math.random() * 360}, 70%, 60%)`
                        ctx.beginPath()
                        ctx.arc(x, y, 3, 0, Math.PI * 2)
                        ctx.fill()
                    }
                    console.log('🎉')
                }

                onMounted(() => {
                    // 初始化画布
                    ctx = canvas.value.getContext('2d')
                    canvas.value.width = window.innerWidth
                    canvas.value.height = window.innerHeight

                    // 启动计时器
                    setInterval(updateTime, 1000)
                    updateTime()
                })

                // 需要返回
                return { days, hours, minutes, second, canvas, sendConfetti }
            }
        }).mount('#app')
    </script>
</body>

</html>

 

总结

暂时先这样吧,有时间再来完善。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2392281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

贪心算法应用:Ford-Fulkerson最大流问题详解

Java中的贪心算法应用:Ford-Fulkerson最大流问题详解 1. 最大流问题概述 最大流问题(Maximum Flow Problem)是图论中的一个经典问题,旨在找到一个从源节点(source)到汇节点(sink)的最大流量。Ford-Fulkerson方法是解决最大流问题的经典算法之一,它属于贪心算法的范畴…

UE5 Niagara 如何让四元数进行旋转

Axis Angle中&#xff0c;X,Y,Z分别为旋转的轴向&#xff0c;W为旋转的角度&#xff0c;在这里旋转角度不需要除以2&#xff0c;因为里面已经除了&#xff0c;再将计算好的四元数与要进行旋转的四元数进行相乘&#xff0c;结果就是按照原来的角度绕着某一轴向旋转了某一角度

从“黑箱”到透明化:MES如何重构生产执行全流程?

引言 在传统制造企业中&#xff0c;生产执行环节常面临“计划混乱、进度难控、异常频发、数据滞后”的困境。人工派工效率低下、物料错配频发、质量追溯困难等问题&#xff0c;直接导致交付延期、成本攀升、客户流失。深蓝易网MES系统以全流程数字化管理为核心&#xff0c;通过…

探索Linux互斥:线程安全与资源共享

个人主页&#xff1a;chian-ocean 文章专栏-Linux 前言&#xff1a; 互斥是并发编程中避免竞争条件和保护共享资源的核心技术。通过使用锁或信号量等机制&#xff0c;能够确保多线程或多进程环境下对共享资源的安全访问&#xff0c;避免数据不一致、死锁等问题。 竞争条件 竞…

JWT安全:假密钥.【签名随便写实现越权绕过.】

JWT安全&#xff1a;假密钥【签名随便写实现越权绕过.】 JSON Web 令牌 (JWT)是一种在系统之间发送加密签名 JSON 数据的标准化格式。理论上&#xff0c;它们可以包含任何类型的数据&#xff0c;但最常用于在身份验证、会话处理和访问控制机制中发送有关用户的信息(“声明”)。…

Python爬虫实战:抓取百度15天天气预报数据

&#x1f310; 编程基础第一期《9-30》–使用python中的第三方模块requests&#xff0c;和三个内置模块(re、json、pprint)&#xff0c;实现百度地图的近15天天气信息抓取 记得安装 pip install requests&#x1f4d1; 项目介绍 网络爬虫是Python最受欢迎的应用场景之一&…

RV1126 + FFPEG多路码流项目

代码主体思路&#xff1a; 一.VI,VENC,RGA模块初始化 1.先创建一个自定义公共结构体&#xff0c;用于方便管理各个模块 rkmedia_config_public.h //文件名字#ifndef _RV1126_PUBLIC_H #define _RV1126_PUBLIC_H#include <assert.h> #include <fcntl.h> #include …

NodeJS 基于 Koa, 开发一个读取文件,并返回给客户端文件下载,以及读取文件形成列表和文件删除的代码演示

前言 在上一篇文章 《Nodejs 实现 Mysql 数据库的全量备份的代码演示》 中&#xff0c;我们演示了如何将用户的 Mysql 数据库进行备份的代码。但是&#xff0c;这个备份&#xff0c;只是备份在了服务器上了。 而我们用户的真实需求&#xff0c;是需要将备份文件下载到本地进行…

为什么在我的Flask里面有两个路由,但是在网页里有一个却不能正确访问到智能体

1. /zhoushibo 能访问&#xff0c;/chat 直接浏览器访问报 Method Not Allowed 原因&#xff1a; /zhoushibo 路由是你用 app.route(/zhoushibo) 定义的&#xff0c;返回的是一个HTML网页&#xff0c;浏览器访问没问题。 /chat 路由你用的是 app.route(/chat, methods[POST])…

哈工大计算机系统2024大作业——Hello的程序人生

计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 人工智能 学   号 2022112040 班 级 2203601 学 生 郄东昕 指 导 教 师 吴锐 计算机科学与技术学院…

2025年软件测试面试八股文(含答案+文档)

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 Part1 1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师…

Flutter3.22适配运行鸿蒙系统问题记录

Flutter3.22适配运行鸿蒙系统问题记录 一&#xff1a;适配条件适配过程问题记录&#xff08;1&#xff09;环境配置问题&#xff08;2&#xff09;Concurrent modification during iteration: Instance(length:2) of_GrowableList 报错&#xff08;3&#xff09;三方插件寻找替…

秋招Day10 - JVM - 内存管理

JVM组织架构主要有三个部分&#xff1a;类加载器、运行时数据区和字节码执行引擎 类加载器&#xff1a;负责从文件系统、网络或其他来源加载class文件&#xff0c;将class文件中的二进制数据加载到内存中运行时数据区&#xff1a;运行时的数据存放的区域&#xff0c;分为方法区…

Spring Boot 3.5.0中文文档上线

Spring Boot 3.5.0 中文文档翻译完成&#xff0c;需要的可收藏 传送门&#xff1a;Spring Boot 3.5.0 中文文档

Redisson学习专栏(一):快速入门及核心API实践

文章目录 前言一、Redisson简介1.1 什么是Redisson&#xff1f;1.2 解决了什么问题&#xff1f; 二、快速入门2.1 环境准备 2.2 基础配置三、核心API解析3.1 分布式锁&#xff08;RLock&#xff09;3.2 分布式集合3.2.1 RMap&#xff08;分布式Map&#xff09;3.2.2 RList&…

Pandas学习入门一

1.什么是Pandas? Pandas是一个强大的分析结构化数据的工具集&#xff0c;基于NumPy构建&#xff0c;提供了高级数据结构和数据操作工具&#xff0c;它是使Python成为强大而高效的数据分析环境的重要因素之一。 一个强大的分析和操作大型结构化数据集所需的工具集基础是NumPy…

基于Piecewise Jerk Speed Optimizer的速度规划算法(附ROS C++/Python仿真)

目录 1 时空解耦运动规划2 PJSO速度规划原理2.1 优化变量2.2 代价函数2.3 约束条件2.4 二次规划形式 3 算法仿真3.1 ROS C仿真3.2 Python仿真 1 时空解耦运动规划 在自主移动系统的运动规划体系中&#xff0c;时空解耦的递进式架构因其高效性与工程可实现性被广泛采用。这一架…

游戏引擎学习第312天:跨实体手动排序

运行游戏并评估当前状况 目前排序功能基本已经正常&#xff0c;能够实现特定的排序要求&#xff0c;针对单一区域、单个房间的场景&#xff0c;效果基本符合预期。 不过还有一些细节需要调试。现在有些对象的缩放比例不对&#xff0c;导致它们看起来有些怪异&#xff0c;需要…

智警杯备赛--数据库管理与优化及数据库对象创建与管理

sql操作 插入数据 如果要操作数据表中的数据&#xff0c;首先应该确保表中存在数据。没有插入数据之前的表只是一张空表&#xff0c;需要使用insert语句向表中插入数据。插入数据有4种不同的方式&#xff1a;为所有字段插入数据、为指定字段插入数据、同时插入多条数据以及插…

MySQL 在 CentOS 7 环境下的安装教程

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习Mysql的相关知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更…