×

关注微信公众号

免备案网站空间虚拟主机双线空间域名查询PS数码后期
photoshop互助课堂数百G视频教程下载英语培训机构初中英语如何学随时随地聆听大师开讲/课堂
酷素材!视频教程打包下手绘教程抠图教程路径专辑photoshop cs3视频教程
查看: 4063|回复: 13

[教程] 10000多个电脑布局之华容道研究@张志晨as3教程58

[复制链接]
发表于 2013-5-13 16:06:00 | 显示全部楼层 |阅读模式
本帖最后由 dqxxx 于 2013-5-15 11:31 编辑

  在教程57的基础上,我增加了
  1.电脑布局的功能
  2.目前收录华容道布局146个,还在扩充之中
  以下是随机创作的一局:

空飞飞赵
丁勇黄赵
曹曹黄兵
曹曹卒空
关关超超


  



作品:


http://bbs.jcwcn.com/forum.php?mod=attachment&aid=MTU1Mjg3NXwyNGRlNzMwNThlYmE0ZDgyYzgxYmY3ODE5OGNiMzgzYXwxNTI0Mjk2MzI2&request=yes&_f=.swf


增加的代码:
  1. //可选位置
  2. var post=[];
  3. var map_arr=[];
  4. rnd_btn.addEventListener(MouseEvent.MOUSE_UP,function (){rnd()});
  5. function rnd() {
  6.         var i:uint,j:uint;
  7.         map_arr=[];
  8.         //可选位置
  9.         post=[  
  10.           0,1,2,
  11.           4,5,6,
  12.           8,9,10,
  13.           12,14,
  14.           3,7,11,15,
  15.           13,
  16.           16,17,18,19
  17.          ];
  18.         //cao:11位可选
  19.         var r:uint=Math.random()*11;
  20.         var id:uint=post[r];
  21.         map_arr[id]=map_arr[id+1]=map_arr[id+4]=map_arr[id+5]="曹";
  22.         post=del_id(post,id,id+1,id+4,id+5);

  23.         post=_rnd(post);//打乱布局
  24.         put("张","飞");
  25.         put("马","超");
  26.         put("黄","忠");
  27.         put("赵","云");
  28.         put("羽","关");
  29.         four();//四兵+两空

  30.         ju_txt.text=map=map_arr.join("");
  31.         trace(map);
  32.         setPost(map);//开始布局
  33.         name_txt.text=thisName="随机布局";
  34.         info="布局完成。可以闯关了";
  35. }


  36. //删除已选:
  37. function del_id(arr:Array,...arg) {
  38.         var i:uint;
  39.         var j:uint;
  40.         for (i=0; i<arg.length; i++) {
  41.                 for (j=0; j<arr.length; j++) {
  42.                         if (arr[j]==arg[i]) {
  43.                                 arr.splice(j,1);
  44.                         }
  45.                 }
  46.         }
  47.         return arr;
  48. }

  49. //随机:
  50. function _rnd(arr:Array ) {
  51.         var i:uint,j:uint,k:int;
  52.         for (i=0; i<arr.length; i++) {
  53.                 j=Math.random()*arr.length;
  54.                 k=arr[i];
  55.                 arr[i]=arr[j];
  56.                 arr[j]=k;
  57.         }
  58.         return arr;
  59. }


  60. function put(shu:String,_heng:String) {
  61.         var i:uint,j:uint,k:uint;
  62.         //post随机打乱,所以是一种随机的局面:

  63.         for (k=0; k<post.length; k++) {
  64.                 var id=post[k];//相当于随机提取
  65.                 var dir=_rnd([1,-1,4,-4]);//随机一种摆放方式

  66.                 for (i=0; i<4; i++) {//一个方向一个方向地尝试
  67.                         for (j=0; j<post.length; j++) {//谁符合条件
  68.                                 if (id+dir[i]==post[j]) {
  69.                                         if (dir[i]==-4||dir[i]==4) {
  70.                                                 map_arr[id]=map_arr[post[j]]=shu;
  71.                                                 post=del_id(post,id,post[j]);
  72.                                                 return;
  73.                                         } else if (dir[i]==-1||dir[i]==1) {
  74.                                                 if (int(id/4)==int(post[j]/4)) {
  75.                                                         map_arr[id]=map_arr[post[j]]=_heng;
  76.                                                         post=del_id(post,id,post[j]);
  77.                                                         return;
  78.                                                 }
  79.                                         }
  80.                                 }
  81.                         }
  82.                 }
  83.         }
  84. }

  85. //四兵:
  86. function four() {
  87.         var i:uint,id:uint;
  88.         var it=["兵","卒","丁","勇","空","空"];
  89.         for (i=0; i<6; i++) {
  90.                 id=post[i];
  91.                 map_arr[id]=it[i];
  92.         }
  93. }
复制代码
代码运行的结果 是得到一个字符串,如:

     空飞飞赵丁勇黄赵曹曹黄兵曹曹卒空关关超超

再解码,就成了上面图片所示的布局。

本帖的地址:http://bbs.jcwcn.com/forum.php?mod=viewthread&tid=526636
跟着教程做一遍,做完的图要到这里评论交作业,教程有看不懂的地方,可以在贴子下面评论

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?[立即注册]

x
 楼主| 发表于 2013-5-13 16:28:37 | 显示全部楼层
酷素材
本帖最后由 dqxxx 于 2013-5-13 16:33 编辑

随机布局:云云忠忠曹曹卒马曹曹空马飞飞羽兵空勇羽丁
此局可解!
用读谱的方式读入:文件样式:

随机布局|云云忠忠曹曹卒马曹曹空马飞飞羽兵空勇羽丁|....|--张志晨 2013.5.8

保存为“随机布局.zzc

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?[立即注册]

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-15 11:09:51 | 显示全部楼层
本帖最后由 dqxxx 于 2013-5-15 11:18 编辑


可解:


无名6|空忠忠勇曹曹空丁曹曹关关飞飞马卒云云马兵|忠左丁左丁上关上卒上卒左兵上兵上马右卒下兵左马上云右云右飞下曹下关左关左丁下勇下忠右忠右关上丁左丁左勇左勇左兵上马上卒上云上飞右飞右曹下勇下丁下关下忠左忠左兵上马上卒上勇右勇右丁右丁右曹上飞左飞左云下丁下勇下丁上丁右曹右曹左丁左勇左马下马下兵右卒上卒下兵下忠右忠右关上曹上飞上云左云左勇下勇右丁下卒下兵左马上勇上云右云右飞下曹下关下忠左忠左马上兵上卒上勇上丁上云上飞右飞右曹下丁左丁左勇左勇左云上飞上飞下云下卒下卒右兵下兵下忠右关右丁上丁上勇左勇上兵左兵左卒左卒左云上云下卒右卒右兵右兵右曹上飞左飞左云下兵下兵右曹右勇下勇下丁下丁下忠左关左马左卒上卒上兵上兵上曹右勇右勇上飞上云左云左曹下勇右勇右丁右丁右丁左丁左勇左勇左兵下兵上马下卒左兵上马右卒下兵左马上曹上云右云右飞下勇下勇上勇下勇左曹左马下马下兵右卒右忠右关右丁上丁上勇上勇上曹左马左卒下卒下关右关左兵下兵下忠右关右勇右勇上曹上飞上云左云左卒下卒左兵下兵下马右卒上兵左马下关下忠下勇右丁右勇右丁右曹上飞上卒左卒左兵上兵左云右卒下兵左兵右兵右飞下曹下丁左丁左勇左勇左忠上关上马上兵上云右飞右飞左云左马下兵右飞右飞左兵左兵下关下忠下勇右勇右丁右丁右曹上飞上卒上云左兵左兵右兵下卒右卒右云上云下飞下关左关左忠下勇下丁下丁上丁下丁上勇上忠上关右关右曹下丁左勇左丁左勇左忠上关上马上卒上兵右兵左兵上云右云右飞下曹下勇下丁下忠左忠左关上勇右勇右丁右丁右曹上飞上云左云左马下兵下卒下丁下勇下关下忠右忠右曹上丁左勇左丁左勇左马上卒上兵上云右云右飞下勇下丁下曹下忠左忠左关上卒上马上兵上云上飞右飞右勇下丁下曹下忠下关左关左卒上马上兵上云上飞上勇右勇右丁右丁右曹下云左云左飞上丁上丁右曹右|--张志晨 2013.5.8

再通过回放【演示功能】,找到了优化的解法:
56步:
无名6|空忠忠勇曹曹空丁曹曹关关飞飞马卒云云马兵|忠左丁左丁上关上卒上卒左兵上兵上马右卒下兵左马上云右云右飞下曹下关左关左丁下勇下忠右忠右关上曹上卒左卒左兵下兵左丁下勇左马上云上飞右飞右兵下卒下曹下关下忠左忠左勇上马上丁上云上飞上兵右兵右卒右卒右曹下云左云左飞上卒上卒右曹右|--张志晨 2013.5.8

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?[立即注册]

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-15 11:36:45 | 显示全部楼层
素材:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?[立即注册]

x
回复 支持 反对

使用道具 举报

发表于 2017-10-11 11:32:38 | 显示全部楼层
酷素材
好帖就是要顶
回复 支持 反对

使用道具 举报

发表于 2017-10-11 11:29:50 | 显示全部楼层
酷素材
说的非常好
回复 支持 反对

使用道具 举报

发表于 2017-10-11 11:39:29 | 显示全部楼层
LZ真是人才
回复 支持 反对

使用道具 举报

发表于 2017-10-11 11:26:32 | 显示全部楼层
好帖子要收藏
回复 支持 反对

使用道具 举报

发表于 2017-10-11 12:16:34 | 显示全部楼层
教程网我挺你
回复 支持 反对

使用道具 举报

发表于 2018-1-13 10:19:28 | 显示全部楼层
真心顶。。。。
回复 支持 反对

使用道具 举报

发表于 2018-1-13 10:47:01 | 显示全部楼层
LZ真是人才
回复 支持 反对

使用道具 举报

发表于 2018-1-13 11:15:17 | 显示全部楼层
学习了。。。
回复 支持 反对

使用道具 举报

发表于 2018-1-13 11:02:01 | 显示全部楼层
好帖子要收藏
回复 支持 反对

使用道具 举报

发表于 2018-1-13 11:12:16 | 显示全部楼层
果断收藏了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | [立即注册]

本版积分规则

2345