刚学TC2,编了个垃圾扫雷
因为是在DOS下的,不知道怎么调用鼠标驱动程序,所以要用键盘移动.还有就是是在一个老的破电脑上写的,用的是98系统,
现在的XP什么的已经没有了里面的COMMAND文件夹(因为用了里面的像素点阵来显示中文,所以XP下文字不能显示了)
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
#include<stdarg.h>
#include<alloc.h>
#include<bios.h>
#include<time.h>
void Space(int m,int n,int p);
static void *button,*cursor,*lei,*bq[4],*flag,*mvFn,*yy;
int tab[480],us[480],cmp;
FILE *Hz16;
static char num[10][42]= /* 这是计数器形式显示0~9数的像素点阵 */{{127,192,191,160,223,96,224,224,224,224,224,224,224,224,224,224,192,96,128,32,0,0,128,32,192,96,224,224,224,224,224,224,224,224,224,224,223,96,191,160,127,192},
{0,0,0,32,0,96,0,224,0,224,0,224,0,224,0,224,0,96,0,32,0,0,0,32,0,96,0,224,0,224,0,224,0,224,0,224,0,96,0,32,0,0},
{127,192,63,160,31,96,0,224,0,224,0,224,0,224,0,224,0,96,63,160,127,192,191,128,192,0,224,0,224,0,224,0,224,0,224,0,223,0,191,128,127,192},
{127,192,63,160,31,96,0,224,0,224,0,224,0,224,0,224,0,96,63,160,127,192,63,160,0,96,0,224,0,224,0,224,0,224,0,224,31,96,63,160,127,192},
{0,0,128,32,192,96,224,224,224,224,224,224,224,224,224,224,192,96,191,160,127,192,63,160,0,96,0,224,0,224,0,224,0,224,0,224,0,96,0,32,0,0},
{127,192,191,128,223,0,224,0,224,0,224,0,224,0,224,0,192,0,191,128,127,192,63,160,0,96,0,224,0,224,0,224,0,224,0,224,31,96,63,160,127,192},
{127,192,191,128,223,0,224,0,224,0,224,0,224,0,224,0,192,0,191,128,127,192,191,160,192,96,224,224,224,224,224,224,224,224,224,224,223,96,191,160,127,192},
{127,192,63,160,31,96,0,224,0,224,0,224,0,224,0,224,0,96,0,32,0,0,0,32,0,96,0,224,0,224,0,224,0,224,0,224,0,96,0,32,0,0},
{127,192,191,160,223,96,224,224,224,224,224,224,224,224,224,224,192,96,191,160,127,192,191,160,192,96,224,224,224,224,224,224,224,224,224,224,223,96,191,160,127,192},
{127,192,191,160,223,96,224,224,224,224,224,224,224,224,224,224,192,96,191,160,127,192,63,160,0,96,0,224,0,224,0,224,0,224,0,224,31,96,63,160,127,192}};
void drawButton(void){
int size,pt[5][2]={{0,0},{16,0},{16,16},{0,16},{0,0}};
setfillstyle(SOLID_FILL,7);
setcolor(7);
fillpoly(5,(int far*)pt);
setcolor(15);
line(1,1,15,1);
line(1,1,1,15);
setcolor(8);
line(2,14,14,14);
line(14,2,14,14);
line(1,15,15,15);
line(15,1,15,15);
size=imagesize(0,0,16,16);
button=malloc(size);
getimage(0,0,16,16,button);
putimage(0,0,button,XOR_PUT);
}
/*int cursTab[8][2]={{0,0},{0,15},{4,13},{7,18},{9,17},{6,12},{9,12},{0,0}};*/
void drawCursor(void){ /* 因为用XOR方式,所以和背景色有冲突,颜色有改变 */
int size,pt[4][2]={{1,1},{1,6},{6,6},{1,1}};
setfillstyle(SOLID_FILL,12);
setcolor(4);
fillpoly(4,(int far*)pt);
size=imagesize(0,0,7,7);
cursor=malloc(size);
getimage(0,0,7,7,cursor);
putimage(0,0,cursor,XOR_PUT);
}
void drawBq(void){
int i,size;
size=imagesize(0,0,16,16);
for(i=0;i<4;i++)
bq[i]=malloc(size);
setfillstyle(SOLID_FILL,14);
setcolor(3);
fillellipse(8,8,8,8);
rectangle(5,5,6,6);
rectangle(10,5,11,6);
arc(8,6,215,325,6);
getimage(0,0,16,16,bq[0]);
putimage(0,0,bq[0],XOR_PUT);
fillellipse(8,8,8,8);
rectangle(4,4,6,6);
rectangle(10,4,12,6);
putpixel(5,5,3);
putpixel(11,5,3);
circle(8,11,2);
getimage(0,0,16,16,bq[1]);
putimage(0,0,bq[1],XOR_PUT);
fillellipse(8,8,8,8);
putpixel(4,4,3);
putpixel(6,6,3);
putpixel(5,5,3);
putpixel(4,6,3);
putpixel(6,4,3);
putpixel(10,4,3);
putpixel(10,6,3);
putpixel(12,4,3);
putpixel(12,6,3);
putpixel(11,5,3);
arc(8,15,35,135,5);
getimage(0,0,16,16,bq[2]);
putimage(0,0,bq[2],XOR_PUT);
fillellipse(8,8,8,8);
arc(8,6,215,323,6);
line(0,8,4,4);
line(4,4,12,4);
line(12,4,16,8);
setfillstyle(SOLID_FILL,3);
fillellipse(5,6,2,2);
fillellipse(11,6,2,2);
getimage(0,0,16,16,bq[3]);
putimage(0,0,bq[3],XOR_PUT);
}
void drawFlag(void){
int size,pt1[4][2]={{0,0},{4,0},{0,3},{0,0}},
pt2[4][2]={{0,3},{4,0},{4,3},{0,3}};
setfillstyle(SOLID_FILL,12);
setcolor(12);
fillpoly(4,(int far*)pt1);
setfillstyle(SOLID_FILL,4);
setcolor(4);
fillpoly(4,(int far*)pt2);
setcolor(3);
line(4,0,4,8);
line(3,8,5,8);
line(1,9,7,9);
size=imagesize(0,0,8,9);
flag=malloc(size);
getimage(0,0,8,9,flag);
putimage(0,0,flag,XOR_PUT);
}
void drawLei(void){
int size;
setcolor(8);
circle(5,5,3);
setcolor(3);
setfillstyle(SOLID_FILL,3);
fillellipse(5,5,2,2);
line(0,5,10,5);
line(5,0,5,10);
putpixel(2,2,3);
putpixel(2,8,3);
putpixel(8,2,3);
putpixel(8,8,3);
putpixel(4,4,15);
size=imagesize(0,0,10,10);
lei=malloc(size);
getimage(0,0,10,10,lei);
putimage(0,0,lei,XOR_PUT);
}
相关推荐
无人机固定翼无人机简化燃油燃烧仿真的模拟模型(Matlab代码实现)
内容概要:本文提出了一种面向固定翼无人机的简化燃油燃烧仿真模拟模型,该模型基于Matlab平台实现,旨在对无人机在飞行过程中的燃油消耗行为进行高效、准确的模拟与分析。模型在保证工程实用性的前提下,对复杂的燃烧化学反应和热力学过程进行了合理简化,重点保留了燃料消耗速率、发动机效率与飞行状态(如高度、速度、迎角等)之间的动态耦合关系,构建了一个轻量化且具备良好泛化能力的燃油经济性评估工具。该模型可用于不同飞行剖面下的续航能力预测、任务航程规划以及能源管理策略的初步设计与验证,为无人机系统级仿真与优化提供关键支撑。; 适合人群:具备Matlab编程与仿真实践能力,从事固定翼无人机总体设计、飞行任务规划、航空动力系统或绿色航空技术研究的科研人员与工程师。; 使用场景及目标:①支撑固定翼无人机在多种工况(巡航、爬升、机动等)下的燃油消耗预测与航程评估;②服务于无人机能源管理系统的概念设计与性能优化,提升任务可靠性和飞行经济性; 阅读建议:建议读者结合Matlab代码深入理解模型结构,通过调整飞行参数(空速、海拔、推力设定等)开展仿真实验,观察燃油流量与累积消耗的变化趋势,进而掌握模型的响应特性与适用边界。
风光储协同并网发电系统仿真(Simulink仿真实现)
内容概要:本文系统介绍了基于Simulink的风光储协同并网发电系统的仿真研究,聚焦风能、光伏与储能系统的多能互补协调控制策略,涵盖并网逆变器控制、虚拟同步发电机(VSG)、下垂控制、模型预测控制(MPC)、中点电位平衡、孤岛检测、低电压穿越(LVRT)等多项核心技术的建模与仿真实现。文档列举了多个典型应用场景,如风光储交直流微电网一体化控制、PEM电解槽制氢耦合系统、VSG预同步切换控制等,并强调结合参考文献与仿真模型进行SCI级别论文的复现,突出其科研指导性与工程实用性。资源包还提供详尽的设计文档、建模报告、Mathcad计算书及配套程序,支持深入理解与二次开发; 适合人群:面向具备电力系统、新能源发电、自动控制等相关专业知识背景的研究生、科研人员及工程技术人员,尤其适用于从事MATLAB/Simulink仿真实践、需完成高水平学术论文或参与实际能源系统设计的研发人员; 使用场景及目标:①用于风光储多能互补系统的并网特性分析、动态响应评估与先进控制策略验证;②支撑SCI论文复现、科研项目攻关与创新方法提出,提升科研竞争力;③服务于高校毕业设计、课程课题研究及实际工程项目中的系统优化、性能测试与方案论证; 阅读建议:建议读者结合提供的参考文献与仿真模型同步操作,优先掌握VSG、MPC、双闭环控制等核心模块的建模逻辑与参数整定方法,注重理论推导与仿真实践相结合,循序渐进地从单一单元扩展至复杂系统集成仿真,全面提升建模能力与科研素养。
基于三次谐波注入法的Z源升压逆变器仿真、更优升压能力【有参考文献】
内容概要:本文围绕基于三次谐波注入法的Z源升压逆变器展开仿真研究,重点分析该方法在提升逆变器电压增益方面的优越性。通过Simulink仿真平台构建系统模型,详细探讨三次谐波注入的作用机理,并与传统四种基本升压控制策略进行对比,验证其在相同条件下实现更高升压比的有效性。研究还结合LCL滤波器设计以优化输出电能质量,抑制高频谐波干扰,提升系统稳定性与动态响应性能。文档配套提供完整的参考资料和可复现的仿真模型,增强了研究成果的可信度与实用性,对推动新能源发电系统中高效、高可靠逆变技术的发展具有重要参考价值。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生、科研人员及从事新能源发电系统研发的工程技术人员。; 使用场景及目标:①用于教学与科研中对Z源逆变器工作原理与先进控制策略的深入理解与实验验证;②为实际工程应用中提升逆变器升压性能提供理论支持与技术方案;③支撑SCI级别论文的复现、改进与创新性课题研究。; 阅读建议:建议结合文中提供的仿真模型与参考文献进行系统学习,重点关注三次谐波注入的实现方式及其对系统稳态精度与动态响应的影响,鼓励通过调整调制度、谐波注入比例等参数开展拓展性仿真实验,以深化对Z源网络特性和控制策略优化的理解。
基于小波分析的小电流接地系统单相接地故障选线仿真【仿真+说明文档+说明PPT】
内容概要:本文围绕基于小波分析的小电流接地系统单相接地故障选线方法展开研究,依托Simulink仿真平台构建系统模型,配套提供详细的说明文档与教学PPT,系统阐述了在中性点不接地或经消弧线圈接地的配电网中发生单相接地故障时,如何利用小波变换对故障后的暂态零序电流信号进行多尺度分解与特征提取。通过分析各线路故障电流的高频暂态分量极性和幅值差异,实现故障线路的准确识别,有效克服传统稳态量选线方法受过渡电阻大、信号微弱等因素影响导致误判的问题,显著提升选线的灵敏度与可靠性。该方法具有较强的工程应用价值,适用于中低压配电网的自动化故障检测与定位场景。; 适合人群:电气工程及其自动化、电力系统继电保护方向的高校本科生、研究生,以及从事配电网故障诊断、继保装置研发的工程技术人员和科研人员。; 使用场景及目标:①掌握小波变换在电力系统暂态信号处理中的具体应用方法;②完成小电流接地系统故障选线算法的研究与仿真验证;③支撑毕业设计、科研项目或实际工程中故障定位模块的技术开发;④深入理解暂态量选线原理及其相较于传统方法的优势。; 阅读建议:建议结合所提供的Simulink仿真模型、说明文档和PPT进行三位一体的学习,重点理解小波变换的选线判据设计原理,动手运行并调试仿真模型,观察不同故障条件下的选线效果,从而深化对算法鲁棒性与适应性的认识。
风光储PEM电解制氢+虚拟同步发电机VSG控制并网发电系统仿真【附参考文献】
内容概要:本文详细介绍了一套基于Simulink平台构建的风光储-PEM电解水制氢与虚拟同步发电机(VSG)协同控制的并网发电系统仿真模型。该模型深度融合风能、光伏、储能及质子交换膜(PEM)电解制氢技术,实现多能互补协调运行,并重点实现了VSG控制策略下的惯量模拟、阻尼调节、预同步机制与离并网无缝切换功能。系统涵盖风光出力波动性建模、PEM电解槽动态响应特性、储能系统能量管理以及VSG功率环控制等核心模块,支持高比例可再生能源接入场景下电力系统频率稳定与惯量支撑能力的研究。文档配套提供详实的参考文献与建模报告,适用于SCI级论文复现与工程化前期验证。; 适合人群:面向从事新能源发电、微电网控制、电力系统稳定性分析等相关领域的研究生、科研人员及工程技术人员,要求具备扎实的电力电子、自动控制理论基础和MATLAB/Simulink仿真能力; 使用场景及目标:①开展风光储氢多能耦合系统的协同运行与能量管理策略研究;②掌握PEM电解制氢系统建模方法及其电网互动特性;③深入理解并实现虚拟同步机的惯量阻尼模拟、功率调节与并离网平滑切换控制;④支撑高水平学术论文复现、科研课题攻关或实际项目的技术可行性验证; 阅读建议:建议结合所提供的参考文献与建模报告,按照目录结构循序渐进地学习,重点关注VSG控制算法的设计逻辑与系统动态响应的仿真结果分析,鼓励动手调试模型参数、优化控制策略以深化对系统运行机理的理解。


新手乐园
