当前位置: 首页 > news >正文

51单片机俄罗斯方块开机动画

/**************************************************************************************************************
* 名称:Game_Star
* 功能:开机动画
* 参数:NULL
* 返回:NULL 
**************************************************************************************************************/
void Game_Star(void)
{
    if(str)
        {
        switch(Tmic)    
            {
                case  0:  if(flag_s == 0){led[15] = 0x01; led[0] = 0x80; flag_s++;} break;
                case 10:  if(flag_s == 1){led[15] = 0x03; led[0] = 0xc0; flag_s++;} break;        
                case 20:  if(flag_s == 2){led[15] = 0x07; led[0] = 0x70; flag_s++;} break;    
                case 30:  if(flag_s == 3){led[15] = 0x0f; led[0] = 0xf0; flag_s++;} break;    
                case 40:  if(flag_s == 4){led[15] = 0x1f; led[0] = 0xf8; flag_s++;} break;    
                case 50:  if(flag_s == 5){led[15] = 0x3f; led[0] = 0xfc; flag_s++;} break;    
                case 60:  if(flag_s == 6){led[15] = 0x7f; led[0] = 0xfe; flag_s++;} break;    
                case 70:  if(flag_s == 7){led[15] = 0xff; led[0] = 0xff; flag_s++;} break;    

                case  80: if(flag_s == 8){led[14] = 0x01; led[1] = 0x80; flag_s++;} break;
                case  90: if(flag_s == 9){led[14] = 0x03; led[1] = 0xc0; flag_s++;} break;        
                case 100: if(flag_s == 10){led[14] = 0x07; led[1] = 0x70; flag_s++;} break;    
                case 110: if(flag_s == 11){led[14] = 0x0f; led[1] = 0xf0; flag_s++;} break;    
                case 120: if(flag_s == 12){led[14] = 0x1f; led[1] = 0xf8; flag_s++;} break;    
                case 130: if(flag_s == 13){led[14] = 0x3f; led[1] = 0xfc; flag_s++;} break;    
                case 140: if(flag_s == 14){led[14] = 0x7f; led[1] = 0xfe; flag_s++;} break;    
                case 150: if(flag_s == 15){led[14] = 0xff; led[1] = 0xff; flag_s++;} break;    

                case 160: if(flag_s == 16){led[13] = 0x01; led[2] = 0x80; flag_s++;} break;
                case 170: if(flag_s == 17){led[13] = 0x03; led[2] = 0xc0; flag_s++;} break;        
                case 180: if(flag_s == 18){led[13] = 0x07; led[2] = 0x70; flag_s++;} break;    
                case 190: if(flag_s == 19){led[13] = 0x0f; led[2] = 0xf0; flag_s++;} break;    
                case 200: if(flag_s == 20){led[13] = 0x1f; led[2] = 0xf8; flag_s++;} break;    
                case 210: if(flag_s == 21){led[13] = 0x3f; led[2] = 0xfc; flag_s++;} break;    
                case 220: if(flag_s == 22){led[13] = 0x7f; led[2] = 0xfe; flag_s++;} break;    
                case 230: if(flag_s == 23){led[13] = 0xff; led[2] = 0xff; flag_s++;} break;            

                case 240: if(flag_s == 24){led[12] = 0x01; led[3] = 0x80; flag_s++;} break;
                case 250: if(flag_s == 25){led[12] = 0x03; led[3] = 0xc0; flag_s++;} break;        
                case 260: if(flag_s == 26){led[12] = 0x07; led[3] = 0x70; flag_s++;} break;    
                case 270: if(flag_s == 27){led[12] = 0x0f; led[3] = 0xf0; flag_s++;} break;    
                case 280: if(flag_s == 28){led[12] = 0x1f; led[3] = 0xf8; flag_s++;} break;    
                case 290: if(flag_s == 29){led[12] = 0x3f; led[3] = 0xfc; flag_s++;} break;    
                case 300: if(flag_s == 30){led[12] = 0x7f; led[3] = 0xfe; flag_s++;} break;    
                case 310: if(flag_s == 31){led[12] = 0xff; led[3] = 0xff; flag_s++;} break;

                case 320: if(flag_s == 32){led[11] = 0x01; led[4] = 0x80; flag_s++;} break;
                case 330: if(flag_s == 33){led[11] = 0x03; led[4] = 0xc0; flag_s++;} break;        
                case 340: if(flag_s == 34){led[11] = 0x07; led[4] = 0x70; flag_s++;} break;    
                case 350: if(flag_s == 35){led[11] = 0x0f; led[4] = 0xf0; flag_s++;} break;    
                case 360: if(flag_s == 36){led[11] = 0x1f; led[4] = 0xf8; flag_s++;} break;    
                case 370: if(flag_s == 37){led[11] = 0x3f; led[4] = 0xfc; flag_s++;} break;    
                case 380: if(flag_s == 38){led[11] = 0x7f; led[4] = 0xfe; flag_s++;} break;    
                case 390: if(flag_s == 39){led[11] = 0xff; led[4] = 0xff; flag_s++;} break;

                case 400: if(flag_s == 40){led[10] = 0x01; led[5] = 0x80; flag_s++;} break;
                case 410: if(flag_s == 41){led[10] = 0x03; led[5] = 0xc0; flag_s++;} break;        
                case 420: if(flag_s == 42){led[10] = 0x07; led[5] = 0x70; flag_s++;} break;    
                case 430: if(flag_s == 43){led[10] = 0x0f; led[5] = 0xf0; flag_s++;} break;    
                case 440: if(flag_s == 44){led[10] = 0x1f; led[5] = 0xf8; flag_s++;} break;    
                case 450: if(flag_s == 45){led[10] = 0x3f; led[5] = 0xfc; flag_s++;} break;    
                case 460: if(flag_s == 46){led[10] = 0x7f; led[5] = 0xfe; flag_s++;} break;    
                case 470: if(flag_s == 47){led[10] = 0xff; led[5] = 0xff; flag_s++;} break;

                case 480: if(flag_s == 48){led[9] = 0x01; led[6] = 0x80; flag_s++;} break;
                case 490: if(flag_s == 49){led[9] = 0x03; led[6] = 0xc0; flag_s++;} break;        
                case 500: if(flag_s == 50){led[9] = 0x07; led[6] = 0x70; flag_s++;} break;    
                case 510: if(flag_s == 51){led[9] = 0x0f; led[6] = 0xf0; flag_s++;} break;    
                case 520: if(flag_s == 52){led[9] = 0x1f; led[6] = 0xf8; flag_s++;} break;    
                case 530: if(flag_s == 53){led[9] = 0x3f; led[6] = 0xfc; flag_s++;} break;    
                case 540: if(flag_s == 54){led[9] = 0x7f; led[6] = 0xfe; flag_s++;} break;    
                case 550: if(flag_s == 55){led[9] = 0xff; led[6] = 0xff; flag_s++;} break;        

                case 560: if(flag_s == 56){led[8] = 0x01; led[7] = 0x80; flag_s++;} break;
                case 570: if(flag_s == 57){led[8] = 0x03; led[7] = 0xc0; flag_s++;} break;        
                case 580: if(flag_s == 58){led[8] = 0x07; led[7] = 0x70; flag_s++;} break;    
                case 590: if(flag_s == 59){led[8] = 0x0f; led[7] = 0xf0; flag_s++;} break;    
                case 600: if(flag_s == 60){led[8] = 0x1f; led[7] = 0xf8; flag_s++;} break;    
                case 610: if(flag_s == 61){led[8] = 0x3f; led[7] = 0xfc; flag_s++;} break;    
                case 620: if(flag_s == 62){led[8] = 0x7f; led[7] = 0xfe; flag_s++;} break;    
                case 630: if(flag_s == 63){led[8] = 0xff; led[7] = 0xff; flag_s++;} break;    

                case 690:  if(flag_s == 64){led[15] = 0x7f; led[0] = 0xfe; flag_s++;} break;
                case 700:  if(flag_s == 65){led[15] = 0x3f; led[0] = 0xfc; flag_s++;} break;        
                case 710:  if(flag_s == 66){led[15] = 0x1f; led[0] = 0xf8; flag_s++;} break;    
                case 720:  if(flag_s == 67){led[15] = 0x0f; led[0] = 0xf0; flag_s++;} break;    
                case 730:  if(flag_s == 68){led[15] = 0x07; led[0] = 0xe0; flag_s++;} break;    
                case 740:  if(flag_s == 69){led[15] = 0x03; led[0] = 0xc0; flag_s++;} break;    
                case 750:  if(flag_s == 70){led[15] = 0x01; led[0] = 0x80; flag_s++;} break;    
                case 760:  if(flag_s == 71){led[15] = 0x00; led[0] = 0x00; flag_s++;} break;    

                case 770:  if(flag_s == 72){led[14] = 0x7f; led[1] = 0xfe; flag_s++;} break;
                case 780:  if(flag_s == 73){led[14] = 0x3f; led[1] = 0xfc; flag_s++;} break;        
                case 790:  if(flag_s == 74){led[14] = 0x1f; led[1] = 0xf8; flag_s++;} break;    
                case 800:  if(flag_s == 75){led[14] = 0x0f; led[1] = 0xf0; flag_s++;} break;    
                case 810:  if(flag_s == 76){led[14] = 0x07; led[1] = 0xe0; flag_s++;} break;    
                case 820:  if(flag_s == 77){led[14] = 0x03; led[1] = 0xc0; flag_s++;} break;    
                case 830:  if(flag_s == 78){led[14] = 0x01; led[1] = 0x80; flag_s++;} break;    
                case 840:  if(flag_s == 79){led[14] = 0x00; led[1] = 0x00; flag_s++;} break;    

                case 850:  if(flag_s == 80){led[13] = 0x7f; led[2] = 0xfe; flag_s++;} break;
                case 860:  if(flag_s == 81){led[13] = 0x3f; led[2] = 0xfc; flag_s++;} break;        
                case 870:  if(flag_s == 82){led[13] = 0x1f; led[2] = 0xf8; flag_s++;} break;    
                case 880:  if(flag_s == 83){led[13] = 0x0f; led[2] = 0xf0; flag_s++;} break;    
                case 890:  if(flag_s == 84){led[13] = 0x07; led[2] = 0xe0; flag_s++;} break;    
                case 900:  if(flag_s == 85){led[13] = 0x03; led[2] = 0xc0; flag_s++;} break;    
                case 910:  if(flag_s == 86){led[13] = 0x01; led[2] = 0x80; flag_s++;} break;    
                case 920:  if(flag_s == 87){led[13] = 0x00; led[2] = 0x00; flag_s++;} break;            

                case  930:  if(flag_s == 88){led[12] = 0x7f; led[3] = 0xfe; flag_s++;} break;
                case  940:  if(flag_s == 89){led[12] = 0x3f; led[3] = 0xfc; flag_s++;} break;        
                case  950:  if(flag_s == 90){led[12] = 0x1f; led[3] = 0xf8; flag_s++;} break;    
                case  960:  if(flag_s == 91){led[12] = 0x0f; led[3] = 0xf0; flag_s++;} break;    
                case  970:  if(flag_s == 92){led[12] = 0x07; led[3] = 0xe0; flag_s++;} break;    
                case  980:  if(flag_s == 93){led[12] = 0x03; led[3] = 0xc0; flag_s++;} break;    
                case  990:  if(flag_s == 94){led[12] = 0x01; led[3] = 0x80; flag_s++;} break;    
                case 1000:  if(flag_s == 95){led[12] = 0x00; led[3] = 0x00; flag_s++;} break;

                case 1010:  if(flag_s == 96){led[11] = 0x7f; led[4] = 0xfe; flag_s++;} break;
                case 1020:  if(flag_s == 97){led[11] = 0x3f; led[4] = 0xfc; flag_s++;} break;        
                case 1030:  if(flag_s == 98){led[11] = 0x1f; led[4] = 0xf8; flag_s++;} break;    
                case 1040:  if(flag_s == 99){led[11] = 0x0f; led[4] = 0xf0; flag_s++;} break;    
                case 1050:  if(flag_s == 100){led[11] = 0x07; led[4] = 0xe0; flag_s++;} break;    
                case 1060:  if(flag_s == 101){led[11] = 0x03; led[4] = 0xc0; flag_s++;} break;    
                case 1070:  if(flag_s == 102){led[11] = 0x01; led[4] = 0x80; flag_s++;} break;    
                case 1080:  if(flag_s == 103){led[11] = 0x00; led[4] = 0x00; flag_s++;} break;

                case 1090:  if(flag_s == 104){led[10] = 0x7f; led[5] = 0xfe; flag_s++;} break;
                case 1100:  if(flag_s == 105){led[10] = 0x3f; led[5] = 0xfc; flag_s++;} break;        
                case 1110:  if(flag_s == 106){led[10] = 0x1f; led[5] = 0xf8; flag_s++;} break;    
                case 1120:  if(flag_s == 107){led[10] = 0x0f; led[5] = 0xf0; flag_s++;} break;    
                case 1130:  if(flag_s == 108){led[10] = 0x07; led[5] = 0xe0; flag_s++;} break;    
                case 1140:  if(flag_s == 109){led[10] = 0x03; led[5] = 0xc0; flag_s++;} break;    
                case 1150:  if(flag_s == 110){led[10] = 0x01; led[5] = 0x80; flag_s++;} break;    
                case 1160:  if(flag_s == 111){led[10] = 0x00; led[5] = 0x00; flag_s++;} break;

                case 1170:  if(flag_s == 112){led[9] = 0x7f; led[6] = 0xfe; flag_s++;} break;
                case 1180:  if(flag_s == 113){led[9] = 0x3f; led[6] = 0xfc; flag_s++;} break;        
                case 1190:  if(flag_s == 114){led[9] = 0x1f; led[6] = 0xf8; flag_s++;} break;    
                case 1200:  if(flag_s == 115){led[9] = 0x0f; led[6] = 0xf0; flag_s++;} break;    
                case 1210:  if(flag_s == 116){led[9] = 0x07; led[6] = 0xe0; flag_s++;} break;    
                case 1220:  if(flag_s == 117){led[9] = 0x03; led[6] = 0xc0; flag_s++;} break;    
                case 1230:  if(flag_s == 118){led[9] = 0x01; led[6] = 0x80; flag_s++;} break;    
                case 1240:  if(flag_s == 119){led[9] = 0x00; led[6] = 0x00; flag_s++;} break;        

                case 1250:  if(flag_s == 120){led[8] = 0x7f; led[7] = 0xfe; flag_s++;} break;
                case 1260:  if(flag_s == 121){led[8] = 0x3f; led[7] = 0xfc; flag_s++;} break;        
                case 1270:  if(flag_s == 122){led[8] = 0x1f; led[7] = 0xf8; flag_s++;} break;    
                case 1280:  if(flag_s == 123){led[8] = 0x0f; led[7] = 0xf0; flag_s++;} break;    
                case 1290:  if(flag_s == 124){led[8] = 0x07; led[7] = 0xe0; flag_s++;} break;    
                case 1300:  if(flag_s == 125){led[8] = 0x03; led[7] = 0xc0; flag_s++;} break;    
                case 1310:  if(flag_s == 126){led[8] = 0x01; led[7] = 0x80; flag_s++;} break;    
                case 1320:  if(flag_s == 127){led[8] = 0x00; led[7] = 0x00; 
                                str    = 0;    flag_s = 0;} break;    
            }                
        }    
        
    else return;              
}

相关文章:

51单片机俄罗斯方块开机动画

/************************************************************************************************************** * 名称:Game_Star * 功能:开机动画 * 参数:NULL * 返回:NULL ******************************************…...

RK3588开发板部署DeepSeek-R1-Distill-Qwen-1.5B的步骤及问题

目录 引言 为什么要做端侧部署 技术发展层面 应用需求层面 开发与成本层面 产业发展层面 模型选择 模型蒸馏 模型转换 量化选择 量化方式 模型大小 计算效率 模型精度 测试 测试程序编译 测试结果 结语 引言 最近DeepSeek已经成为一个非常热门的话题&#x…...

网络安全 | 安全信息与事件管理(SIEM)系统的选型与实施

网络安全 | 安全信息与事件管理(SIEM)系统的选型与实施 一、前言二、SIEM 系统的功能概述2.1 数据收集与整合2.2 实时监控与威胁检测2.3 事件响应与自动化2.4 合规性管理 三、SIEM 系统选型的关键因素3.1 功能需求评估3.2 可扩展性与性能3.3 易用性与可维…...

DeepSeek接口联调(postman版)

第一步:获取API key 获取APIkeys链接https://platform.deepseek.com/api_keys 点击创建 API key 即可免费生成一个key值,别忘记保存。 第二步:找到deepseek官方接口文档 文档地址:https://api-docs.deepseek.com/zh-cn/ 第三步…...

RadASM环境,win32汇编入门教程之三

;运行效果 ;win32汇编环境,RadAsm入门教程之三 ;在这个教程里,我们学一下如何增加控件,比如按钮,其它的控件类似这样增加 ;以下的代码就是在教程一的窗口模版里增加一个按钮控件,可以比较一下,增加了什么内…...

oracle多次密码错误登录,用户锁住或失效

多次输入错误账号查询状态: select username,account_status from dba_users; TEST EXPIRED(GRACE) 密码错误延迟登录,延迟登录还能登录 或者 TEST LOCKED(TIMED) 密码错误锁 TEST EXPIRED(GR…...

HCIA-Datacom笔记3:网络工程

网络工程 网络工程 在信息系统工程方法和完善的组织机构指导下,根据网络应用的需求,按照计算机网络系统的标准、规范和技术,规划设计可行性方案,将计算机网络硬件设备、软件和技术系统地集成在一起,以成为满足用户需…...

[NGINX]命令行参数

-? | -h 打印帮助信息 -c file 指定配置文件 -e file 指定错误日志文件 (1.19.5)。特殊值stderr选择标准错误输出。 -g directives 设置全局配置指令,例如:nginx -g "pid /var/run/nginx.pid; worker_processes sysctl -n hw.ncpu;" -p pref…...

http 模块

在现代 Web 开发中,HTTP 协议是客户端与服务器之间通信的基础。Node.js 自带的 http 模块提供了一种简单而强大的方式来创建 HTTP 服务器和客户端,使得开发者可以直接使用 JavaScript 编写高效的网络应用。本文将详细介绍 http 模块的基本概念、核心功能…...

本地部署DeepSeek + AnythingLLM 搭建高效安全的个人知识库

环境准备: 本地部署方案请参考博客:windows平台本地部署DeepSeek大模型+Open WebUI网页界面(可以离线使用)-CSDN博客 windows平台本地部署DeepSeek大模型+Chatbox界面(可以离线使用)-CSDN博客 根据本人电脑配置:windows11 + i9-13900HX+RTX4060+DDR5 5600 32G内存 确…...

LLM - 理解 DeepSeek 的 GPRO (分组相对策略优化) 公式与源码 教程(2)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145640762 GPRO,即 Group Relative Policy Optimization,分组相对的策略优化,是 PPO(Proximal Policy Optimiz…...

Github 2025-02-14 Java开源项目日报 Top10

根据Github Trendings的统计,今日(2025-02-14统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目10C#项目1Guava: 谷歌Java核心库 创建周期:3725 天开发语言:Java协议类型:Apache License 2.0Star数量:49867 个Fork数量:10822 次…...

DeepSeek赋能制造业:图表可视化从入门到精通

一、企业数据可视化之困 在数字化浪潮席卷全球的当下,商贸流通企业作为经济活动的关键枢纽,每天都在与海量数据打交道。从商品的采购、库存管理,到销售渠道的拓展、客户关系的维护,各个环节都源源不断地产生数据。这些数据犹如一座蕴含巨大价值的宝藏,然而,如何挖掘并利用…...

Python爬虫技术

Python爬虫技术凭借其高效便捷的特性,已成为数据采集领域的主流工具。以下从技术优势、核心实现、工具框架、反爬策略及注意事项等方面进行系统阐述: 一、Python爬虫的核心优势 语法简洁与开发效率高 Python的语法简洁易读,配合丰富的第三方库…...

C++Primer学习(4.6成员访问运算符)

4.6成员访问运算符 点运算符和箭头运算符都可用于访问成员,其中,点运算符获取类对象的一个成员;箭头运算符与点运算符有关,表达式 ptr->mem等价于(* ptr).mem: string sl"a string",*p &s1; auto ns1.size();//运行string对…...

c++14之std::make_unique

基础介绍 虽然在c11版本std::unique_ptr<T>已经引入&#xff0c;但是在c14版本引入之前&#xff0c;std::unique_ptr<T>的创建还是通过new操作符来完成的。在c14版本已经引入了类似make_shared的std::make_unique&#xff0c;目的是提供更加安全的方法创建std::un…...

服务器linux操作系统安全加固

一、系统更新与补丁管理 更新系统sudo yum update -y # 更新所有软件包 sudo yum install epel-release -y # 安装EPEL扩展源启用自动安全更新sudo yum install yum-cron -y sudo systemctl enable yum-cron sudo systemctl start yum-cron配置 /etc/yum/yum-cron.con…...

原生Three.js 和 Cesium.js 案例 。 智慧城市 数字孪生常用功能列表

对于大多数的开发者来言&#xff0c;看了很多文档可能遇见不到什么有用的&#xff0c;就算有用从文档上看&#xff0c;把代码复制到自己的本地大多数也是不能用的&#xff0c;非常浪费时间和学习成本&#xff0c; 尤其是three.js &#xff0c; cesium.js 这种难度较高&#xff…...

Node.js中Express框架使用指南:从入门到企业级实践

目录 一、Express快速入门 1. 项目初始化 2. 基础服务搭建 3. 添加热更新 二、核心功能详解 1. 路由系统 动态路由参数 路由模块化 2. 中间件机制 自定义中间件 常用官方中间件 3. 模板引擎集成 三、企业级最佳实践 1. 项目结构规范 2. 错误处理方案 3. 安全防护…...

spring 学习 (注解)

目录 前言 常用的注解 须知 1 Conponent注解 demo&#xff08;案例&#xff09; 2 ControllerServiceRepository demo(案例&#xff09; 3 ScopeLazyPostConstructPreDestroy demo(案例&#xff09; 4 ValueAutowiredQualifierResource demo(案例&#xff09; 5 Co…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

Pydantic + Function Calling的结合

1、Pydantic Pydantic 是一个 Python 库&#xff0c;用于数据验证和设置管理&#xff0c;通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发&#xff08;如 FastAPI&#xff09;、配置管理和数据解析&#xff0c;核心功能包括&#xff1a; 数据验证&#xff1a;通过…...