<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
        主站蜘蛛池模板: 在线免费观看色片| 国产在线观看片a免费观看| 免费人成视频在线观看不卡| 456亚洲人成在线播放网站| 亚洲综合免费视频| 亚洲第一网站免费视频| xx视频在线永久免费观看| 亚洲精品视频在线观看视频| 18女人腿打开无遮掩免费| 亚洲精品在线播放视频| 台湾一级毛片永久免费| 亚洲日韩精品国产3区| 全黄性性激高免费视频| 国产成人1024精品免费| 情人伊人久久综合亚洲| 91成人在线免费视频| 亚洲人和日本人jizz| 手机看片久久国产免费| 一级毛片免费播放视频| 亚洲VA中文字幕无码一二三区| 日本一道本不卡免费| 亚洲乱码中文论理电影| 日韩中文无码有码免费视频| 久久久受www免费人成| 色拍自拍亚洲综合图区| 日本特黄特色免费大片| 两个人日本免费完整版在线观看1 两个人的视频www免费 | 亚洲三级高清免费| 亚洲AV无码资源在线观看| 中文字幕无码精品亚洲资源网| 午夜无码A级毛片免费视频| 中文日韩亚洲欧美制服| 亚洲国产黄在线观看| 老汉精品免费AV在线播放| 亚洲国产高清国产拍精品| 久久久无码精品亚洲日韩软件| 黄色成人免费网站| 在线视频网址免费播放| 亚洲AV男人的天堂在线观看| 中文字幕亚洲综合久久男男| 中字幕视频在线永久在线观看免费|