腾讯云AI代码助手编程挑战赛-随机小挑战助手
每日随机小挑战工具 是一款使用腾讯云AI代码助手生成的、旨在提高用户每天挑战自我的工具。很多时候,我们都需要一些日常的小挑战来提高自己的工作效率、思维能力或者健康水平,基于这一需求,通过这款每日随机小挑战工具,它通过自动生成每日小挑战,帮助用户轻松应对每一天的挑战,让生活充满随机性,增加生活的趣味性与动力。
·
作品简介
每日随机小挑战工具 是一款使用腾讯云AI代码助手生成的、旨在提高用户每天挑战自我的工具。很多时候,我们都需要一些日常的小挑战来提高自己的工作效率、思维能力或者健康水平,基于这一需求,通过这款每日随机小挑战工具,它通过自动生成每日小挑战,帮助用户轻松应对每一天的挑战,让生活充满随机性,增加生活的趣味性与动力。
技术架构
使用 Python 编程语言,结合 Tkinter
库设计图形用户界面,整个程序逻辑包括:从挑战题库中随机抽取题目、生成用户自定义的小挑战内容。
实现过程
-
创建界面
设计一个简洁明了的界面,包含:- 按钮用于开始生成每日挑战
- 显示框展示生成的挑战内容
-
随机生成挑战小项目
-
设置界面细节,优化
开发环境与开发工具
- 系统:Windows 11
- 开发工具:VSCode
- 编程语言:Python
- 插件:安装腾讯云AI代码助手插件辅助开发
关键技术解析
-
随机数生成:使用 Python 中的
random
模块生成随机数,确保每次抽取的挑战题目都不重复。 -
图形界面设计:通过
Tk
库设计直观、简洁的用户界面。
使用说明
-
点击“生成每日挑战”:点击“生成每日挑战”按钮,程序会从题库中随机抽取挑战并显示在界面中。
-
每天定时获取挑战:可以在程序中设置定时器,每天自动生成一个新挑战,或者用户可以手动触发挑战生成。
效果展示
定时开启
项目源码
import tkinter as tk
from tkinter import messagebox
import random
import schedule
import time
from threading import Thread
from datetime import datetime
# 手动创建每日挑战列表
daily_challenges = [
"今天学习Python中的装饰器。",
"完成至少45分钟的有氧运动。",
"阅读一篇关于人工智能的技术博客。",
"尝试解决一个中等难度的算法题。",
"学习JavaScript中的异步编程。",
"完成一次户外徒步活动。",
"阅读一本关于设计模式的书籍。",
"尝试编写一个简单的游戏。",
"学习C++中的模板编程。",
"完成30分钟的瑜伽练习。",
"阅读一篇关于云计算的文章。",
"尝试解决一个数据库优化的难题。",
"学习Ruby中的元编程。",
"完成一次摄影挑战。",
"阅读一篇关于机器学习的论文。",
"尝试构建一个个人网站。",
"学习Go语言的基础。",
"完成一次游泳锻炼。",
"阅读一篇关于区块链的技术文章。",
"尝试解决一个网络安全相关的问题。",
"学习Swift中的协议和委托。",
"完成一次骑行活动。",
"阅读一本关于数据结构的书籍。",
"尝试实现一个排序算法。",
"学习Kotlin中的协程。",
"完成一次绘画创作。",
"阅读一篇关于物联网的文章。",
"尝试解决一个操作系统相关的问题。",
"学习Rust语言的基础。",
"完成一次音乐欣赏。",
"阅读一篇关于量子计算的技术博客。",
"尝试构建一个简单的移动应用。",
"学习Scala中的函数式编程。",
"完成一次烹饪新菜品的尝试。",
"阅读一篇关于生物技术的文章。",
"尝试解决一个图形学相关的问题。",
"学习Haskell中的惰性求值。",
"完成一次登山活动。",
"阅读一篇关于天文学的技术文章。",
"尝试实现一个网络爬虫。",
"学习Lua中的模块系统。",
"完成一次志愿者服务。",
"阅读一篇关于地理信息系统的文章。",
"尝试解决一个分布式系统相关的问题。",
"学习Perl中的正则表达式。",
"完成一次陶艺制作。",
"阅读一篇关于考古学的技术博客。",
"尝试构建一个简单的聊天应用。",
"学习MATLAB中的数据分析。",
"完成一次书法练习。",
"尝试学习一种新的乐器的基础知识。",
"完成一次室内园艺活动,比如种植多肉植物。",
"阅读一篇关于航空航天技术发展的文章。",
"尝试进行一次短距离的帆船体验。",
"学习CSS中的Flexbox布局。",
"完成一次冥想练习。",
"阅读一本关于历史文化名城的书籍。"
]
# 全局变量用于记录上次选择挑战的日期和打乱后的挑战列表
shuffled_challenges = daily_challenges.copy()
random.shuffle(shuffled_challenges)
last_challenge_date = None
def get_today_challenge():
global last_challenge_date, shuffled_challenges
today = datetime.now().date()
if last_challenge_date!= today or not shuffled_challenges:
last_challenge_date = today
shuffled_challenges = daily_challenges.copy()
random.shuffle(shuffled_challenges)
challenge = shuffled_challenges.pop(0)
return challenge
def generate_challenge():
challenge = get_today_challenge()
challenge_text.delete(1.0, tk.END)
challenge_text.insert(tk.END, challenge)
def scheduled_challenge_generation():
schedule.every().day.at("08:00").do(generate_challenge)
while True:
schedule.run_pending()
time.sleep(1)
# 创建并启动定时任务线程
scheduler_thread = Thread(target=scheduled_challenge_generation, daemon=True)
scheduler_thread.start()
def start_scheduled_generation():
messagebox.showinfo("定时任务", "定时自动生成挑战功能已开启,每天早上8点会自动生成挑战。")
# 创建主窗口
root = tk.Tk()
root.title("每日挑战生成器")
root.geometry("600x400")
root.resizable(False, False)
# 设置窗口背景颜色
root.configure(bg='#f0f8ff')
# 创建一个框架来更好地布局内容
frame = tk.Frame(root, bg='#f0f8ff')
frame.pack(padx=20, pady=20)
# 创建文本框展示挑战
challenge_text = tk.Text(frame, height=15, width=80, bg='#ffffff', relief='flat', borderwidth=1)
challenge_text.grid(row=0, column=0, columnspan=2, pady=(0, 20))
# 创建按钮生成每日挑战
generate_button = tk.Button(frame, text="生成每日挑战", command=generate_challenge, bg='#4CAF50', fg='white',
activebackground='#45a049', font=('Arial', 12))
generate_button.grid(row=1, column=0, padx=(0, 10), pady=10)
# 创建按钮开启定时自动生成挑战
scheduled_button = tk.Button(frame, text="开启定时自动生成", command=start_scheduled_generation,
bg='#008CBA', fg='white', activebackground='#007bb5', font=('Arial', 12))
scheduled_button.grid(row=1, column=1, pady=10)
# 运行主循环
root.mainloop()
注意:
要想生活变有趣,赶快开启每日随机挑战吧,就是随机抽取,同时要按要求完成每日的挑战哦!!!
更多推荐
所有评论(0)