QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1549|回复: 4
打印 上一主题 下一主题

用数学软件建模来通过游戏关卡的一个小想法,

[复制链接]
字体大小: 正常 放大

2

主题

7

听众

102

积分

升级  1%

  • TA的每日心情
    无聊
    2017-1-13 09:17
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    自我介绍
    将来想用MATLAB做东西

    社区QQ达人

    群组国赛讨论

    跳转到指定楼层
    1#
    发表于 2014-7-13 23:05 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    本帖最后由 木头风火轮 于 2014-7-14 19:20 编辑

    前不久玩《机械迷城2-小小星球大碰撞》玩到倒数第二关的这个拼图这里一时半会没拼出来, 就想到是不是可以用matlab矩阵实验室来求解答案

    把每一个小块编号:a,b....k

    然后进行数字化处理, 后面用这些数字矩阵在软件里来做拼图游戏,应该会简单很多,,下面是程序部分,
    1. clear all;
    2. %假设初始状态,十个小块都在大面板的左上角放置
    3. a='4040e0000000';
    4. b='40e040000000';
    5. c='80c060000000';
    6. d='c08080000000';
    7. e='c07000000000';
    8. f='f04000000000';
    9. g='20e000000000';
    10. h='808080808000';
    11. i='40e020000000';
    12. j='c04040000000';
    13. k='800000000000';
    14. %十个小块在大面板中的十六进制编码
    15. tab={a b c d e f g h i j k};
    16. tab2=cell(1,11);
    17. %定义一个一行十列的数组用以储存转换后的二进制编码
    18. tabL=zeros(1,11);
    19. for t=1:11
    20.     tx=tab(t);
    21.     %依次读取十六进制编码
    22.     tt=hex2dec(tx);
    23.     tab2{1,t}=dec2bin(tt);
    24.     %依次转换成二进制编码储存在tab2{}中
    25. end
    26. for k=1:11
    27.     n=tab2{1,k};
    28.         nn=num2str(n);
    29.         lin=length(nn);
    30.         %读取二进制编码并转换成字符串格式,以便能测量长度
    31.         %因为在从十进制转成二进制的过程中, 二进制数开头的0会被省略掉,所以需要重新测量长度
    32.     for m=lin:-1:1
    33.         if nn(m)==1
    34.             
    35.             tabL(1,k)=47-m;
    36.           %这里应该是能表示出每个小块能向右移动的最大距离,

    37.         end
    38.         continue
    39.     end
    40. end

    复制代码
    如上面最后一条注释所说, tabL(1,k)=47-m; 应该能储存每个小块的矩阵编码含1部分能向右移动的最大距离,但是在这个方式里面好像有点问题,另一个方式里面能表示出最大距离,和这个差不多, 那个程序问题比较多,,就不发另一个的了,
    做到这一步之后, 最后就只差一个类似线性规划的多元一次方程了,
    大概是
    A U B U C U D U . . U J U K==ones(1,48),
    是一个矩阵做并,或者也可能是做异或, 由于一开始就把所有条件都设为一维矩阵,所以最后并下来的结果和ones(1,48)相等,就能找出每个小块在大面板中从左上角开始移动的距离,从而得出正确的拼图答案
    难就难在只有一个方程, 我matlab了解得不深, 不知道matlab该怎么去实现最后这一步,,接下几天在其他事情上会比较忙, 所以不再独自一个人研究, 发出来大家共同探讨,集思广益,


    【后面有一个小小的建议,建议在YY频道里开设课程试听环节,159214作为数学中国旗下的指定的学员交流和授课频道, 没有了免费试听环节之后, YY里每天都没什么人, 没人气,除了交了费了来听课之外, 都很少有爱好者来围观了, ,对数学中国和YY电台都是不怎么好的事情】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册地址

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    2

    主题

    7

    听众

    102

    积分

    升级  1%

  • TA的每日心情
    无聊
    2017-1-13 09:17
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    自我介绍
    将来想用MATLAB做东西

    社区QQ达人

    群组国赛讨论

    这里用16进制数写进去, 是由于我对十六进制数比较熟悉, 而且主要是48位的二进制,用十六进制只要12为就能输入进去,再通过一个小程序即可再转回二进制数,便于后面程序调用
    回复

    使用道具 举报

    124

    主题

    68

    听众

    1万

    积分

  • TA的每日心情
    擦汗
    2021-10-28 10:42
  • 签到天数: 624 天

    [LV.9]以坛为家II

    网络挑战赛参赛者

    自我介绍

    社区QQ达人 新人进步奖 元老勋章 发帖功臣 风雨历程奖

    群组2015SAS数据分析大赛

    群组2013电工杯A题讨论群组

    群组2013年第二期美赛论文

    群组2014年地区赛数学建模

    群组2014年美赛冲刺培训

    高大上啊,,有点看不懂。试听现在是每一个课程的第一节是试听课程。(⊙v⊙)嗯,
    回复

    使用道具 举报

    2

    主题

    7

    听众

    102

    积分

    升级  1%

  • TA的每日心情
    无聊
    2017-1-13 09:17
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    自我介绍
    将来想用MATLAB做东西

    社区QQ达人

    群组国赛讨论

    GO雨林木风 发表于 2014-7-15 16:39
    高大上啊,,有点看不懂。试听现在是每一个课程的第一节是试听课程。(⊙v⊙)嗯,

    这个哪里高端大气了, 就是拼图而已, ,,希望试听是第一节课+每节课的前十几分钟就好了
    回复

    使用道具 举报

    kedi87135     中国数模人才认证   

    2

    主题

    13

    听众

    531

    积分

    升级  77%

  • TA的每日心情
    慵懒
    2016-2-8 17:28
  • 签到天数: 69 天

    [LV.6]常住居民II

    新人进步奖

    群组数学建模培训课堂1

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-12-30 23:58 , Processed in 0.481005 second(s), 72 queries .

    回顶部