閱讀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  八大排序算法