|
本帖最后由 dqxxx 于 2013-5-15 11:31 编辑
在教程57的基础上,我增加了
1.电脑布局的功能
2.目前收录华容道布局146个,还在扩充之中
以下是随机创作的一局:
空飞飞赵
丁勇黄赵
曹曹黄兵
曹曹卒空
关关超超
作品:
http://bbs.jcwcn.com/forum.php?mod=attachment&aid=MTU1Mjg3NXwyNGRlNzMwNThlYmE0ZDgyYzgxYmY3ODE5OGNiMzgzYXwxNTI0Mjk2MzI2&request=yes&_f=.swf
增加的代码:- //可选位置
- var post=[];
- var map_arr=[];
- rnd_btn.addEventListener(MouseEvent.MOUSE_UP,function (){rnd()});
- function rnd() {
- var i:uint,j:uint;
- map_arr=[];
- //可选位置
- post=[
- 0,1,2,
- 4,5,6,
- 8,9,10,
- 12,14,
- 3,7,11,15,
- 13,
- 16,17,18,19
- ];
- //cao:11位可选
- var r:uint=Math.random()*11;
- var id:uint=post[r];
- map_arr[id]=map_arr[id+1]=map_arr[id+4]=map_arr[id+5]="曹";
- post=del_id(post,id,id+1,id+4,id+5);
- post=_rnd(post);//打乱布局
- put("张","飞");
- put("马","超");
- put("黄","忠");
- put("赵","云");
- put("羽","关");
- four();//四兵+两空
- ju_txt.text=map=map_arr.join("");
- trace(map);
- setPost(map);//开始布局
- name_txt.text=thisName="随机布局";
- info="布局完成。可以闯关了";
- }
- //删除已选:
- function del_id(arr:Array,...arg) {
- var i:uint;
- var j:uint;
- for (i=0; i<arg.length; i++) {
- for (j=0; j<arr.length; j++) {
- if (arr[j]==arg[i]) {
- arr.splice(j,1);
- }
- }
- }
- return arr;
- }
- //随机:
- function _rnd(arr:Array ) {
- var i:uint,j:uint,k:int;
- for (i=0; i<arr.length; i++) {
- j=Math.random()*arr.length;
- k=arr[i];
- arr[i]=arr[j];
- arr[j]=k;
- }
- return arr;
- }
- function put(shu:String,_heng:String) {
- var i:uint,j:uint,k:uint;
- //post随机打乱,所以是一种随机的局面:
- for (k=0; k<post.length; k++) {
- var id=post[k];//相当于随机提取
- var dir=_rnd([1,-1,4,-4]);//随机一种摆放方式
- for (i=0; i<4; i++) {//一个方向一个方向地尝试
- for (j=0; j<post.length; j++) {//谁符合条件
- if (id+dir[i]==post[j]) {
- if (dir[i]==-4||dir[i]==4) {
- map_arr[id]=map_arr[post[j]]=shu;
- post=del_id(post,id,post[j]);
- return;
- } else if (dir[i]==-1||dir[i]==1) {
- if (int(id/4)==int(post[j]/4)) {
- map_arr[id]=map_arr[post[j]]=_heng;
- post=del_id(post,id,post[j]);
- return;
- }
- }
- }
- }
- }
- }
- }
- //四兵:
- function four() {
- var i:uint,id:uint;
- var it=["兵","卒","丁","勇","空","空"];
- for (i=0; i<6; i++) {
- id=post[i];
- map_arr[id]=it[i];
- }
- }
复制代码 代码运行的结果 是得到一个字符串,如:
空飞飞赵丁勇黄赵曹曹黄兵曹曹卒空关关超超
再解码,就成了上面图片所示的布局。
|
|