-
基于Labview的打地鼠游戏
本软件基于LabVIEW设计开发一款打地鼠游戏,界面美观、逻辑简洁、可玩性高。游戏分为三个难度,对应不同地鼠出现的速度,同时也设置有倒计时与计分板的功能。 设计分为三个模块,分别为界面设计、鼠标连接、结果结算。界面设计中,地鼠为自定义控件,将土地与地鼠分别设为布尔控件的on/off,整体界面设置为5*5,地鼠则通过随机数出现在面板中。鼠标连接部分,是将鼠标与屏幕的坐标对应,通过在设计中标定鼠标与每行每列对应的坐标,进一步与地鼠出现的行列对应,当鼠标所在的位置与地鼠出现的行列均相同并点击时,则认为玩家打中地鼠。第三部分是结果结算,游戏设置三个模式,地狱级、普通级、新手级,不同难度级别分别对应不同的游戏截止时间,游戏有两种结算方式:1倒计时时间到玩家没有达到预设的分数;2玩家手动停止游戏。当玩家重新点击开始时,即重新开始计时,重置计分板。
- 2021-05-06下载
- 积分:1
-
行星齿轮传动设计.pdf
本书介绍了行星齿轮的传动设计,内容十分详细全面,几乎涵盖了各种行星齿轮,强烈推荐给机械专业的读者!
- 2021-05-06下载
- 积分:1
-
LoRa开发源代码
基于LoRa终端平台(STM8L151C8T6和SX1278)和Contiki系统,开发了3个小系统:发送随机数据,接收数据帧,Ping-Pong收发系统。
- 2020-07-04下载
- 积分:1
-
单周期CPU设计全过程
组成原理实验课,包含十六条指令实现,完整的代码以及详细的实验报告,是本人实验课的作业
- 2020-12-05下载
- 积分:1
-
slic超像素分割 Matlab代码
SLIC: simple linear iterative clustering的简称,即简单的线性迭代聚类。 这是一个基于聚类算法的超像素分割,由LAB空间以及x、y像素坐标共5维空间来计算。不仅可以分割彩色图,也可以兼容分割灰度图,它还有一个优点就是可以人为的设置需要分割的超像素的数量。
- 2021-05-06下载
- 积分:1
-
adc0809ADC+proteus电压采集数码管显示
用的51+AD0809(仿真只能是0808),里面包含了驱动代码,用proteus仿真实现, 实现的功能: K1 启动电压采集,在数码管上显示。K2是停止电压采集 电压计算公式: Vout=Vin*(基准电压)/(2的N次方) *1000.说明:Vout:是要显示的电压。 Vin :采集外部的电压,就是模拟电压,需要转换成数字电压的。 N : 几位AD就是几,比如0809是8位 他就是256. 1000 : 是采集的扩大了1000倍,为了在数码管上显示,这个具体有无都可以,只是为了好计算
- 2020-12-12下载
- 积分:1
-
51单片机交通灯
【实例简介】用8051实现交通灯控制
- 2021-08-07 00:31:03下载
- 积分:1
-
内存乒乓缓存机制和消息分发机制的C代码实现
用C代码实现乒乓内存缓冲机制,具体实用价值,帮助您提高内存响应速度与及时数据的处理。unsigned long writeunsigned long greadunsigned long overflowST TWTMSG QUEUE:/ Helper macros for accessing Msg queues. *#define tWt QUEUE EMPty(a)(((g->write==(q)->gread)? 1: 0)#define twt_ QUeUe full(a)(((((q)->qwrite +1% TIMEWEIGHT TASKQUEUE SIZED)==(q)->gread)?1: 0)米 generate a Msg entity*正常返回消息体的指针,异常返回NULLT TWTMSG* generateMsg(tT-TWTMSG* pmSg=nULL,if(NULL =-(ptMsg malloc(sizeof(T TWTMSG)))return NULL;memset(ptMsg, 0, sizeof(T TWTMSG)return pmSg;destroy a Msgvoid destroy Msg(t TWTMSG ptMsgif(NULL ptMsg->pfDestroyMsg)pt Msg->pfDestroy Msg(ptMsg->pvMsg)if (NULL != pt Msg)free(pmSgfree a Msg Queuevoid freeTWTMsg Que(T TWTMSG QUEUE* ptMsgQif(NULL =ptMsg Afree(ptMsg Q);Init a Msg QT TWTMSG QUEUE* initTWTMsg QueoT TWTMSG QUEUE pmSg Q= NULlif (NULL ==(ptMsgQ malloc(sizeof(T_ TWTMSG QUeue)goto ErrRetmemset(ptMsgQ, 0, sizeof(T TWTMSG QUEUE))return pmSg Q;Errretprintf( initTWTMsg Que Fail! ")freeTWTMsgQue(ptMsg Q)return nullPop a pvMsg packet from a msg packet queues param g is the packet queue from which to pop the pbuf@return pointer to pvMsg packet if available, NULl otherwiseT TWTMSG* TWTMsg Get(T_ TWTMSG QUEUE aT TWTMSG*//*加锁if(TWT_ QUEUE_ EMPTY(a))iReturn a NUll pointer if the queue is emptypmSg=NULL;else is The queue is not empty so return the next frame from itand adjust the read pointer accordinglypmSg=g->pvMsglq >greadg->gread =((q->gread +1)% TIMEWEIGHT_TASKQUEUE_ SIZE)/*解锁return(pmSg);Push a pmSg packet onto a pvMsg packet queue@param p is the pmsg to push onto the packet queue@param g is the packet queue.W @return 0 if successful, -1 if q is fullnt TWTMsg Send(T tWTMSg*p, T TWTMSG QUEUE *qint ret/if(!TWT_ QUEUE FULL(al)iThe queue isn t full so we add the new frame at the currentw write position and move the write pointer.g->pvMsgla->write]=pg- >write =((q->qwrite+1)% TIMEWEIGHT TASKQUEUE SIZE;ret =oThe stack is full so we are throwing away this value. Keep trackof the number of times this happensg->overflow++ret =-1://*解锁return(ret)**米**米来米***来米*半米*米*半米*米求***半*米米求半**米求半**半求半和*米*//消息分发机制//*算法是//*正常返回0,出错返回-1水米米******水*米*水**米*半*水米米冰半**水水*水米米半米冰水*米水水*水*米水水extern int RecToFile MsgProc(T_ MSG_ REC2 FILE* ptMsg);int DispatchMsg(T TWTMSG *ptMsgitif(NULl = ptMsg goto ErrRet/*dispatch msg*/switch(ptMsg->en Msg Type)case TWT PINgPoNgBuff recRecTo File Msg Procl(TMSG_REC2FE) (pmSg->pMsg);/*处理消息*/destroy Msg( pmSg;/*消毁消息breakdefault.printf("Dispatch Msg Msgtype Error! n")break.return 0ErrRetprintf("Dispatch Msg Fail! ";return-1./*buff size*/#defineP| NGPONG_ BUFF BSIZE0X20000//10*1024*1024/*10M*/*ping pong buff*///chargacPINGBUFF[PINGPONG BUFF BSIZE]; /* Ping Buff*///chargacPONGBUFF[PINGPONG_ BUFF BSIZE] *Pong Buff*/水米米*********米*水**米*半*水米米水**冰水*水米米半半水半米冰水*米水水*水*米米//*释放 ping pong buff/必然成功//*无返回木***木*水****本**水*水水*水****本水**水水****水水***本***米*水void Destroy Ping Pong Butt(T PINGPONGBUFF USE DES ptPing Pong Butt)nLoopif (NULL = pt Ping pong buffreturnfor (nLoop=0; nLooptIng BuffUse[nLoop]. pcHeadAddr)free(ptPing Pong ->t Ping BuffUse[nLoop]. pcHeadAddr)free(pt Ping pong Buff)/初始化 ping pong buff返回 pign pong buff的描述指针//*正常返回0,出错返回-1水水水水水水水水水木水木水水水水水木水木水水水水水水水水本水水水水水水水水水本水水水水水水水水水水水水水T PINGPONGBUFF USE DES InitPing Pong Buff(unsigned int n BuffSizeT PINGPONGBUFF USE DES* ptBuffDes=NULLintnLoop/*获取buf描述*if NULL==(ptBuffDes=malloc(sizeof(T PINGPONGBUFF USE DES))))goto ErrRetmemset(pt BuffDes, 0, sizeof(T_PINGPONGBUFF USE_ DES));/*分别初始化ping和pong*/for(nLoop=0; nLooptIng BuffUsenLoop pcHeadAddr =malloc n BuffSize))goto Err Ret;ptBuffDes->tIng BuffUselnLoop] nBuffSize nBuffsizeptBuffDes->tPing BuffUse[nLoop]. oFfsetptBuffDes->tPing BuffUsenLoop) eUseStatus-=BUFF WRITEABLE;pt BuffDes->eCurUseIDBUFF PINGreturn pt BuffDesErrretprintf("lnitPing Pong Buff Fail!");DestroyIng Pong Buff(pt BuffDes)turn null平**米**米*米***来米米*米*米*半米*米米米来*半米平**米米求*来*半求半来*米求*和*米*/*Reset ping pong buff//*正常返回0,出错返回-1米米米米水冰米*米米水**米米冰*米水米米米米水米水*水米米来米米x米来米米水冰来来宋来水米来米来冰#define ResetBuffUse(ptBuffuse)pt BuffUse->oFfset0pt BuffUse->eUseStatus BUFF WRITEABLEgenerate a file rec msg*正常返回消息体的指针,异常返回NULLT_MSG_REC2lGK SenFRMSB(T_BUFF_USE_DES *ptBuffUse, REC_FILE_DESLIST *ptFileListRT MSG REC2FILE KE* ptRFMsg= NULL;if(NULL ==(ptRFMsg malloc(sizeof(T_ MSG REC2 FILE)return nUllptRFMsg- >pt BuffUse pt BuffUseptRFMsg->pt Filelist ptFilelist;return ptRFMsg
- 2020-12-03下载
- 积分:1
-
cdma多用户检测算法的仿真
matlab 程序,包括3个文件:mseries.m编写了一个产生m序列的函数;mud.m用来比较传统单用户检测、线性解相关多用户检测、最小均方误差多用户检测的误码率;mud_plot比较后并画出误码率-信噪比曲线。
- 2020-12-04下载
- 积分:1
-
多阶段伪谱法的基本实现
【实例简介】多阶段伪谱法的基本实现的matlab代码,便于学习和改造成自己的实现。建立了伪谱法的通用框架,目前包含切比雪夫和勒让德伪谱法,可以很容易加入其它伪谱法,也可以进一步加入分段策略改造成hp自适应伪谱法。包含一些算例,如速降线,月面着陆。
- 2021-11-03 00:32:30下载
- 积分:1