基于MATLAB的连的连看开发.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MATLAB的连的连看开发

摘要在MATLAB的基础上,利用Simulink的现有库Commonly Used Blocks中的各类常用模块,使用一些基础编程代码,完成连连看的游戏设计。如果将同一模块的输入端与输出端连接之后,虽然从信号线判断其源和目的所连接的模块类型相同,应该注释掉;但是由于句柄一致,可以判断出二者实际上是一个模块,此时也将信号线自动删除,并告知玩家连接的是同一个模块。本次游戏设计中使用了一个主函数创建一个含有double模块的模型系统。callback回调函数delete_pair_blocks.m,判断连线两端模块类型是否相同。利用寄时器callback回调函数delete_pair_bl.m设置模块属性。关键词:Simulink,MATLAB,跳转回调函数,timer目录一、游戏概述1.1连连看游戏简介1.1.1基本概述连连看,在散乱的模块阵中,将两个相同的模块连线后消除。运行Link_and_Delete.m程序,自动创建模型,模型中随机分布不同种类的模块(位置随机)。用户识别相同的模块,并连线。当所有模块都两两相连的时候,系统判断用户获胜。1.1.2特点处理(1)、模块两两连线后虚化模块两两连线成功后,系统出现提示“You find one pair correctly”,模块整体虚化。保存模块在模型中,便于用户了解模型中使用的全部模块。(2)、模块连线失败后无法后退模块连接失败后无法后退,删除连线时出现“Error”警告。每一个模块都有输入输出两端口,允许一次失败。1.2Simulink介绍1.2.1 Simulink简介Simulink是Matlab软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与Matlab语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。所谓模型化图形输入是指Simulink提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。1.2.2 Simulink的启动(1)在Matlab命令窗口中输入simulink结果是在桌面上出现一个称为Simulink Library Browser的窗口,在这个窗口中列出了按功能分类的各种模块的名称。(2)通过Matlab主窗口的快捷按钮来打开Simulink Library Browser窗口。(3)在MATLAB命令窗口中输入simulink3结果是在桌面上出现一个用图标形式显示的Library :simulink3的Simulink模块库窗口。1.2.3 Simulink的模块库介绍Simulink模块库按功能进行分为以下8类子库:Continuous(连续模块)Discrete(离散模块)FunctionTables(函数和平台模块)Math(数学模块)Nonlinear(非线性模块)SignalsSystems(信号和系统模块)Sinks(接收器模块)Sources(输入源模块)二、程序介绍2.1主函数Link_and_Delete.m2.1.1程序代码mdl_name=link_delete;mdl_fullname=[mdl_name,.slx];if exist(mdl_fullname,file)trydelete(mdl_fullname);catchclose_system(mdl_fullname);delete(mdl_fullname);endendnew_system(mdl_name);save_system(mdl_name);open_system(mdl_name);block_lib_path=Simulink/Commonly Used Blocks/;lib_block_name={Gain,Integrator,Data Type Conversion,Saturation,Delay,Discrete-Time Integrator};block_type_num=length(lib_block_name);blocks_num=5;en_num=500;for ii=1:blocks_numind=randi(block_type_num,[1 1]);src_str=strcat(block_lib_path,lib_block_name(ind));dst_str=strcat(mdl_name,/,lib_block_name(ind)); block_handle=add_block(src_str{:},dst_str{:}

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档