找回密码
 立即注册

QQ登录

只需一步,快速开始

微信小程序开发资源

关注:1576

所属分类: 微信开发 微信小程序开发资源



本版块为微信小程序资源分享区,包括微信小程序开发中可能会用到的各类小程序开发工具、小程序demo源码及开发教程等。

快捷导航www.mainetimberworks.com):微信小程序社区微信小程序导航微信小程序资源下载微信小程序官方课程

[更新动态] 新手练手:2048程序拆解02-生产随机数(高手不必看)

[复制链接]
查看: 3257|回复: 17
最佳答案
2 

5

主题

58

帖子

1346

积分

专家路上

积分
1346
为了尊重原作者,在文章最后有参考葡京赌场网站的源网站,该网站有完整葡京赌场网站

不多废话,继续组装,这次实现随机选择2个空方块,每个空方块的值随机选择为2或者4。
结果如下:
2048random.jpg

原来的葡京赌场网站写的非常漂亮,我根据自己的理解注释了一下,有不对的地方大家拍砖:

var app = getApp()
Page({
  data : {
    mydata : new Array(16),
  },

  onLoad : function () {
    //初始化数组
    var myData2 = new Array(16);
    myData2.fill(0);
    this.setData({mydata: myData2});
    this.randNum();
    this.randNum();
  },

  changeTileData: function(tile, val){
    var changeMyData = {};
    changeMyData['mydata[' + tile + ']'] = val; //这是一个非常巧妙地解决办法,因为现在changMyData的内容就是{'changeMyData' : val}
    this.setData(changeMyData);
  },

  //产生随机的新的方块。
  //1、首先,把空的方块收集到一个新的数组里面。新的方块又2个部分决定,是第几个元素元素,方块值取多少
  //2、得到一个0-1之间的随机数,如果该数大于0.7,就把方块值取为4,否则取为2
  //3、得到一个0-1之间的随机数并乘以数组长度,用floor函数去尾数,取得是第几个元素,这个元素的值是原来的一个空方块的下标
  randNum : function() {
    var arr = [];
    this.data.mydata.map(function(item,i){
      if( item == 0 ) {
        arr.push(i);//把所有空方块的下标组成了一个数组
      }
    });

    var num = Math.random() > 0.7 ? 4 : 2;      //随机选取2、4做为空方块的值
    var index = arr[Math.floor(Math.random() * arr.length)];  //随机选取一个mydata空方块的下标
    this.changeTileData(index,num);
  },

})


源葡京赌场网站说明
本项目的源葡京赌场网站是由zouzhenxing的程序源葡京赌场网站修改而来,原始的文件在下面网页可以获得获得:
http://cnodejs.org/topic/57ea49d8d3c70faa43663e9b
该作者的程序源葡京赌场网站采用了MIT许可模式

quickstart2048random.rar (4.96 KB, 下载次数: 109)
回复

使用道具 举报

最佳答案
0 

5

主题

419

帖子

3221

积分

专家路上

积分
3221
发表于 2017-7-17 09:05:47 | 显示全部楼层
学习一下,谢谢分享
回复 支持 反对

使用道具 举报

最佳答案
0 

5

主题

419

帖子

3221

积分

专家路上

积分
3221
发表于 2017-7-18 09:14:39 | 显示全部楼层
学习一下,谢谢分享
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

9

帖子

86

积分

新人求带

积分
86
发表于 2017-7-20 14:31:07 | 显示全部楼层

谢谢你啊,好帖子不顶不行
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

4

帖子

39

积分

新人求带

积分
39
发表于 2017-7-20 14:44:33 | 显示全部楼层
dzkt收到了
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

71

帖子

270

积分

新人求带

积分
270
发表于 2017-8-30 10:50:08 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

57

帖子

60

积分

等待验证会员

积分
60
发表于 2018-12-23 15:48:47 | 显示全部楼层
一个金融微信小程序
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

615

帖子

1224

积分

专家路上

积分
1224
QQ
发表于 2018-12-28 11:42:07 | 显示全部楼层
ThinkphpThinkphpThinkphp
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

794

帖子

9103

积分

S1

积分
9103
发表于 2018-12-29 10:40:33 | 显示全部楼层
66666666666666666666
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

794

帖子

9103

积分

S1

积分
9103
发表于 2018-12-30 10:25:24 | 显示全部楼层
666666666666666
回复 支持 反对

使用道具 举报

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

本版积分规则



www.mainetimberworks.com—微信开发者的分享交流平台,专注微信开发生态。

天津市滨海新区
中新生态城中成大道生态建设公寓9号楼3层301

微信葡京娱乐网址号

市场合作
[email protected]