阅读41 返回首页    go 阿里云 go 技术社区[云栖]


棋牌游戏21点算法


1.21点算法 (该算法不是原创,不过忘记哪里保存下来的,只是感觉算法不错,拿出来分享,若有冒犯可咨询QQ2189563389 ,棋牌网站开发制作 https://www.yasewl.com/)

4b292212017f6d2476ccc3b20a8c77e245ddf52c

关键在于case的排列;

 

2.对象的访问方式:

有两种方式访问对象属性,一个是点操作符(.),一个是中括号操作符([])。

0bdc2ade2976c9af5ec6ddefb1d2904c1ffe9a1f

 

3.第二种访问对象的方式就是中括号操作符([]),如果你想访问的属性的名称有一个空格,这时你只能使用中括号操作符([])。

9df2a6ea97ffe078cd60955897835821ea8268a8

 

4.中括号操作符的另一个使用方式是用变量来访问一个属性。当你需要遍历对象的属性列表或查表时,这种方式极为有用。

ea89ae21d7011047322a4fe8ccfa588a7a3a0af7

 

5.当你创建了一个对象后,你可以用点操作符或中括号操作符来更新对象的属性。

4846cccaab2a4d05cd58402ad7e767c6987e03b9

 

6.你也可以像更改属性一样给对象添加属性。

afad07b0cea648c02a7d0e65f25bc9f92a587810

 

7.我们同样可以删除对象的属性,例如:delete ourDog.bark;

 

8.对象和字典一样,可以用来存储键/值对。

如果你的数据跟对象一样,你可以用对象来查找你想要的值,

而不是使用switch或if/else语句。当你知道你的输入数据在某个范围时,这种查找方式极为有效。

4cdf4266b90831a523c8da89faabe6c0796ef057

 

 

9.有时检查一个对象属性是否存在是非常有用的,

我们可以用.hasOwnProperty(propname)方法来检查对象是否有该属性。

如果有返回true,反之返回 false

b1df8a89fd28156a2c5de4391726aaf132583528

 检测对象是否存在某个属性,案例:

55500120877745c6566a87682db2a6e0a5b296fc

 

10.JavaScript Object Notation 简称 JSON

它使用JavaScript对象的格式来存储数据。

JSON是灵活的,因为它允许 数据结构 是 字符串,数字,布尔值,字符串,和 对象 的任意组合。

提示:数组中有多个 JSON 对象的时候,对象与对象之间要用逗号隔开。

 7c2328c32b562bea135ff1cd5f3bc434a504a49f

 

11.通过串联起来的点操作符或中括号操作符来访问JSON对象的嵌套属性。

7de33f68b6ea25d798fb1a22db711ad9ece8a2f0

 

12.正如我们在前面的例子所见,JSON对象可以嵌套对象和数组。

与访问嵌套对象一样,用中括号操作符同样可以访问嵌套数组。

eb2f924e02f7024d04ddb2d98b17b9d2f5025fb8

 

 

 13.写一个函数,它有个三个参数,idprop、 value

如果 value !='' 而且prop != 'tracks'collectionCopy[id][prop]=value;

如果 value !='' 而且prop == 'tracks'collectionCopy[id][prop].push(value);

如果 value == '' ,delete collectionCopy[id][prop];

 之前一直有问题:

①使用了else if,而不是if结构,判断第一个正确后,不执行下面的else if语句了

②value=“ ”,空格也是一个字符,所以不符合要求,应该是value=“”

③或,且符号记错,| 表示或,& 表示且

 

65d09e5e29d5a5afd55ac438fa217e1327ecb1cc

 

 

14.JavaScript 中最常见的循环就是“for循环”。for循环中的三个表达式用分号隔开:

for ([初始化]; [条件判断]; [计数器])

初始化语句只会在执行循环开始之前执行一次。它通常用于定义和设置你的循环变量。

条件判断语句会在每一轮循环的开始执行,只要条件判断为 true 就会继续执行循环。当条件为 false的时候,循环将停止执行。这意味着,如果条件在一开始就为 false,这个循环将不会执行。

计数器是在每一轮循环结束时执行,通常用于递增或递减。

使用 for 循环把从 1 到 5 添加进 myArray 中。for循环就是if条件语句的进化版。

85b27fb972ba36e8c4ca9d124d2d0ec326418f5c

 

 

15.for循环可以按照我们指定的顺序来迭代,通过更改我们的 计数器,我们可以按照偶数顺序来迭代。

写一个 for 循环,把从1到9的奇数添加到 myArray

f06fd26ab58199e28b18ce6b023242ba6672258d

 

 

16.for循环也可以逆向迭代,只要我们定义好合适的条件。

为了能够从后往前两两倒数,我们需要改变我们的 初始化条件判断 和 计数器

2f2a22bf21ace7ed70ac3f17076dec0fc51abf41

 

17.迭代输出一个数组的每个元素是 JavaScript 中的常见需求, for 循环可以做到这一点。

声明并初始化一个变量 total 为 0。使用 for循环,使得 total 的值为 myArr 的数组中的每个元素的值的总和。

出错地方:total应该是全局变量,我一开始放到了for循环中

9ca8e7e65ab843457946f1f13559471008bea317

 

18.如果你有一个二维数组,可以使用相同的逻辑,先遍历外面的数组,再遍历里面的子数组。嵌套for循环

5c1b67484a8b05e95e5ff67e442f0bd27bc5e041

一次输出 arr 中的每个子元素。提示,对于内部循环,我们可以通过 arr[i] 的 .length 来获得子数组的长度,因为 arr[i] 的本身就是一个数组。

82b30c44da359d71d28f7f9145b9c0a05b285a42

 

19.另一种类型的 JavaScript 循环被称为while循环,因为它规定,当(while)条件为真,循环才会执行,反之不执行。

while循环需要在外部定义循环变量

 a65edc3e5ba4fbfeee38e7d974117097d8743fac

 

20.一个例子函数:

函数 lookUp 有两个预定义参数:firstName值和prop属性 。

函数将会检查通讯录是否存在一个联系人的firstName属性等于firstName值,还会检查对应联系人是否存在 prop属性。

如果它们都存在,函数返回prop属性对应的值。

如果firstName 值不存在,返回 "No such contact"

如果prop 属性不存在,返回 "No such property"

 5f0de1002b83db2d06f179c90b6e071b619d6355

 

21.计算机的行为只有两种:确定性和随机性。当你一步步地闯关来到这里就是确定行为,当你随意点了个链接就来到这里就是随机行为。

而随机数最适合用来创建这种随机行为。

Math.random()用来生成一个在0(包括0)到1(不包括1)之间的随机小数,因此Math.random()可能返回0但绝不会返回1。

 

 

22.生成随机小数很棒,但随机数更有用的地方在于生成随机整数。

  1. 用 Math.random() 生成一个随机小数。
  2. 把这个随机小数乘以 20
  3. 用 Math.floor() 向下取整 获得它最近的整数。

记住 Math.random() 永远不会返回 1同时因为我们是在用 Math.floor() 向下取整,所以最终我们获得的结果不可能有 20。这确保了我们获得了一个在0到19之间的整数。

把操作连缀起来,代码类似于下面:

Math.floor(Math.random() * 20);

 

23.我们之前生成的随机数是在0到某个数之间,现在我们要生成的随机数是在两个指定的数之间。

 

我们需要定义一个最小值和一个最大值。

 

下面是我们将要使用的方法,仔细看看并尝试理解这行代码到底在干嘛:

 

Math.floor(Math.random() * (max - min + 1)) + min

最后更新:2017-07-06 12:02:31

  上一篇:go  马云:大数据时代,最重要的是做最好的自己
  下一篇:go  八大排序算法