<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

        javascript實(shí)例--教你實(shí)現(xiàn)撲克牌洗牌功能_javascript技巧

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:23:19
        文檔

        javascript實(shí)例--教你實(shí)現(xiàn)撲克牌洗牌功能_javascript技巧

        javascript實(shí)例--教你實(shí)現(xiàn)撲克牌洗牌功能_javascript技巧:我們一般都會(huì)按照順序把隨機(jī)摸過來的牌從小到大的順序在手上理整齊(記得小時(shí)候打牌兩副牌手都抓不過來),這篇隨筆就是想通過實(shí)現(xiàn)這個(gè)功能來熟悉下js中排序數(shù)組等相關(guān)知識(shí)。用到知識(shí)點(diǎn):1.工廠方式創(chuàng)建對(duì)象2.js數(shù)組sort()方法 代碼如下: var testA
        推薦度:
        導(dǎo)讀javascript實(shí)例--教你實(shí)現(xiàn)撲克牌洗牌功能_javascript技巧:我們一般都會(huì)按照順序把隨機(jī)摸過來的牌從小到大的順序在手上理整齊(記得小時(shí)候打牌兩副牌手都抓不過來),這篇隨筆就是想通過實(shí)現(xiàn)這個(gè)功能來熟悉下js中排序數(shù)組等相關(guān)知識(shí)。用到知識(shí)點(diǎn):1.工廠方式創(chuàng)建對(duì)象2.js數(shù)組sort()方法 代碼如下: var testA

        我們一般都會(huì)按照順序把隨機(jī)摸過來的牌從小到大的順序在手上理整齊(記得小時(shí)候打牌兩副牌手都抓不過來),這篇隨筆就是想通過實(shí)現(xiàn)這個(gè)功能來熟悉下js中排序數(shù)組等相關(guān)知識(shí)。

        用到知識(shí)點(diǎn):

        1.工廠方式創(chuàng)建對(duì)象

        2.js數(shù)組sort()方法

        代碼如下:
        var testArr = [1, 3, 4, 2];
        testArr.sort(function (a,b) {
        return a - b;
        })
        alert(testArr.toString());//1,2,3,4
        testArr.sort(function (a, b) {
        return b- a;
        })
        alert(testArr.toString());//4,3,2,1

        3.js-Math.radom()隨機(jī)數(shù)

        Math.random();//0-1 取得的隨機(jī)數(shù)大于等于0且小于1

        4.js數(shù)組splice用法

        代碼如下:
        //第一個(gè)參數(shù)是插入的起始位置
        //第二個(gè)參數(shù)是從起始位置開始刪除元素的個(gè)數(shù)
        //第三個(gè)參數(shù)是在起始位置開始插入的元素
        //例子
        var testArr = [1, 3, 4, 2];
        testArr.splice(1, 0, 8);
        alert(testArr.toString());//1,8,3,4,2

        var testArr1 = [1, 3, 4, 2];
        testArr1.splice(1, 1, 8);
        alert(testArr1.toString());//1,8,3,4,2

        5.js數(shù)組shift用法

        代碼如下:
        //取出數(shù)組中的首個(gè)元素返回,數(shù)組刪除第一個(gè)元素
        //例子
        var testArr = [1, 3, 4, 2];
        var k= testArr.shift();
        alert(testArr.toString());//3,4,2
        alert(k);//1

        有了這些基礎(chǔ)知識(shí),咱們可以開始打牌了,假設(shè)就一個(gè)人摸牌,底牌是隨機(jī)的,我們每次摸來一張牌的時(shí)候就要把他插到手上的牌中,保證順序是從小到大!

        第一步:首先我們要寫一個(gè)生產(chǎn)撲克牌對(duì)象的方法:

        代碼如下:
        /*工廠模式創(chuàng)建各種牌
        *number:牌上的數(shù)字
        *type:牌的花色
        */
        var Cards = (function () {
        var Card = function (number, type) {
        this.number = number;
        this.type = type;
        }
        return function (number, type) {
        return new Card(number, type);
        }
        })()

        第二步:創(chuàng)建撲克牌,洗牌,存儲(chǔ)

        代碼如下:
        var RadomCards = [];//隨機(jī)牌存儲(chǔ)數(shù)組
        var MyCards = [];//存儲(chǔ)摸過來的牌


        //花色0-黑桃 1-梅花 2-方塊 3-紅桃 4-大鬼 5-小鬼
        //數(shù)值0-13代表 鬼,1,2,3,4,5,6,7,8,9,10,J,Q,K;
        function CreatCompeleteCard() {
        var index = 2;
        var arr = [];
        for (var i = 0; i <= 13; i++) {
        if (i == 0) {
        arr[0] = new Cards(i, 4);
        arr[1] = new Cards(i, 5);
        } else {
        for (var j = 0; j <= 3; j++) {
        arr[index] = new Cards(i, j);
        index++;
        }
        }
        }
        RadomCards = SortCards(arr);
        Show();//在頁面上顯示當(dāng)前的牌
        }
        //洗牌
        function SortCards(arr) {
        arr.sort(function (a, b) {
        return 0.5 - Math.random();
        })
        return arr;
        }

        第三步:開始摸牌,摸牌的時(shí)候我們首先要判斷插入的位置,然后把新牌插入到指定位置,形成新的整齊的順序

        代碼如下:
        //摸牌方法
        function GetCards(CardObj) {
        var k = InCardsIndex(MyCards, CardObj);//考慮下插入的位置
        MyCards.splice(k, 0, CardObj); // 插入形成新的順序
        }
        /*【獲取牌應(yīng)該插入的位置】
        *arr:當(dāng)前手里的牌
        *obj:新摸到的牌
        */
        function InCardsIndex(arr, obj) {
        var len = arr && arr.length || 0;
        if (len == 0) {
        return 0;
        }else if (len == 1) {
        if (obj.number >= arr[0].number) {
        return 1;
        } else {
        return 0;
        }
        } else {
        var backi = -1;
        for (var i = 0; i < len; i++) {

        if (obj.number <= arr[i].number) {
        backi = i;
        break;
        }
        }
        if (backi == -1) {
        backi = len;
        }
        return backi;
        }
        }

        好啦!通過html上的button按鈕出發(fā)Start來摸牌,點(diǎn)一次摸一張牌!并展示出來

        代碼如下:
        function Start() {//摸牌方法,一次摸一張
        if (RadomCards.length > 0) {
        GetCards(RadomCards.shift());
        Show();
        } else {
        alert("沒有了");
        }
        }
        //該show方法是用來在頁面展示當(dāng)前牌的動(dòng)向
        function Show() {
        var lenOld = RadomCards.length;
        var lenNew = MyCards.length;
        var html = "";
        for (var i = 0; i < lenOld; i++) {
        html += "" + RadomCards[i].type + "-" + RadomCards[i].number + "";
        }
        document.getElementById("old").innerHTML=html;
        html = "";
        for (var i = 0; i < lenNew; i++) {
        html += "" + MyCards[i].type + "-" + MyCards[i].number + "";
        }
        document.getElementById("new").innerHTML=html;
        }

        上html和css的代碼

        代碼如下:












        底牌:



        我摸到的牌:


        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        javascript實(shí)例--教你實(shí)現(xiàn)撲克牌洗牌功能_javascript技巧

        javascript實(shí)例--教你實(shí)現(xiàn)撲克牌洗牌功能_javascript技巧:我們一般都會(huì)按照順序把隨機(jī)摸過來的牌從小到大的順序在手上理整齊(記得小時(shí)候打牌兩副牌手都抓不過來),這篇隨筆就是想通過實(shí)現(xiàn)這個(gè)功能來熟悉下js中排序數(shù)組等相關(guān)知識(shí)。用到知識(shí)點(diǎn):1.工廠方式創(chuàng)建對(duì)象2.js數(shù)組sort()方法 代碼如下: var testA
        推薦度:
        標(biāo)簽: 技巧 教你 實(shí)例
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲欧洲精品成人久久奇米网 | 999久久久免费精品播放| 亚洲爽爽一区二区三区| 牛牛在线精品免费视频观看| 国产极品美女高潮抽搐免费网站| 亚洲天堂2017无码中文| 成人激情免费视频| 亚洲AV无码一区二区三区电影| 国产免费怕怕免费视频观看| 国产一区二区三区亚洲综合 | 亚洲国产精品无码久久一区二区| 中文字幕免费在线观看动作大片 | 久久亚洲日韩看片无码| 成人AV免费网址在线观看| 亚洲人成色777777精品| 国内自产少妇自拍区免费| 亚洲AV无码一区二区三区鸳鸯影院| 国产免费人视频在线观看免费| 高潮毛片无遮挡高清免费| 最新精品亚洲成a人在线观看| 中文成人久久久久影院免费观看 | 亚洲熟妇自偷自拍另欧美| 国产美女精品视频免费观看| 国产精品免费久久久久电影网| 亚洲高清在线视频| 在线观看免费人成视频色9| 色偷偷亚洲第一综合| 亚洲国产三级在线观看| 免费H网站在线观看的| 美美女高清毛片视频黄的一免费| 国产性爱在线观看亚洲黄色一级片 | 国产亚洲日韩一区二区三区| 99久久精品免费视频| 亚洲精华国产精华精华液好用| 久久久久亚洲爆乳少妇无| 91香焦国产线观看看免费| 亚洲AV无码之国产精品| 久久精品国产亚洲网站| 夫妻免费无码V看片| 免费网站看av片| 国产精品亚洲色图|