2015年2月27日金曜日

開発環境

  • OS X Yosemite - Apple (OS)
  • Safari, Firefox, Google Chrome(Webプラウザ)
  • Emacs (CUI)、BBEdit - Bare Bones Software, Inc.(GUI) (Text Editor)
  • JavaScript (プログラミング言語)

Head First jQuery(Ryan Benedetti(著)、Ronan Cranley(著)、O'Reilly Media)のChapter 6(jQuery and JavaScript: jQuery, I Am Your Father!)、EXERCISE(No. 3391)を解いてみる。

その他参考書籍

EXERCISE(No. 3391)

JavaScript(BBEdit, Emacs)

var used_cards = [],
    deal = function () {
        var i;
        for (i = 0; i < 2; i += 1) {
            hit();
        }
    },
    getRandom = function (num) {
        var my_num = Math.floor(Math.random() * num);
        return my_num;
    },
    hit = function () {
        var good_card = false,
            index,
            c,
            $d;
        do {
            index = getRandom(52);
            if (!$.inArray(index, used_cards) > -1) {
                good_card = true;
                c = deck[index];
                used_cards[used_cards.length] = index;
                $d = $('<div>');
                $d.addClass('current_hand')
                    .appendTo('#my_hand');
                $('<img>')
                    .appendTo($d)
                    .attr('src',
                          'images/cards/' + c.suit + '/' + c.name + '.jpg')
                    .fadeOut('slow')
                    .fadeIn('slow');
            }
        } while (!good_card);
    },
    hand = {
        cards: [],
        current_total: 0,
        sumCardTotal: function () {
            var i,
                max;
            for (i = 0, max = this.cards.length; i < max; i += 1) {
                this.current_total += this.cards[i];
            }
            $('#hdrTotal').text(this.current_total);
        }
    };
    Card = function (name, suit, value) {
        this.name = name;
        this.suit = suit;
        this.value = value;
    },
    deck = [
        new Card('Ace', 'Clubs', 11),
        new Card('Two', 'Clubs', 2),
        new Card('Three', 'Clubs', 3),
        new Card('Four', 'Clubs', 4),
        new Card('Five', 'Clubs', 5),
        new Card('Six', 'Clubs', 6),
        new Card('Seven', 'Clubs', 7),
        new Card('Eight', 'Clubs', 8),
        new Card('Nine', 'Clubs', 9),
        new Card('Ten', 'Clubs', 10),
        new Card('Jack', 'Clubs', 10),
        new Card('Queen', 'Clubs', 10),
        new Card('King', 'Clubs', 10),

        new Card('Ace', 'Hearts', 11),
        new Card('Two', 'Hearts', 2),
        new Card('Three', 'Hearts', 3),
        new Card('Four', 'Hearts', 4),
        new Card('Five', 'Hearts', 5),
        new Card('Six', 'Hearts', 6),
        new Card('Seven', 'Hearts', 7),
        new Card('Eight', 'Hearts', 8),
        new Card('Nine', 'Hearts', 9),
        new Card('Ten', 'Hearts', 10),
        new Card('Jack', 'Hearts', 10),
        new Card('Queen', 'Hearts', 10),
        new Card('King', 'Hearts', 10),

        new Card('Ace', 'Diamonds', 11),
        new Card('Two', 'Diamonds', 2),
        new Card('Three', 'Diamonds', 3),
        new Card('Four', 'Diamonds', 4),
        new Card('Five', 'Diamonds', 5),
        new Card('Six', 'Diamonds', 6),
        new Card('Seven', 'Diamonds', 7),
        new Card('Eight', 'Diamonds', 8),
        new Card('Nine', 'Diamonds', 9),
        new Card('Ten', 'Diamonds', 10),
        new Card('Jack', 'Diamonds', 10),
        new Card('Queen', 'Diamonds', 10),
        new Card('King', 'Diamonds', 10),
        
        new Card('Ace', 'Spades', 11),
        new Card('Two', 'Spades', 2),
        new Card('Three', 'Spades', 3),
        new Card('Four', 'Spades', 4),
        new Card('Five', 'Spades', 5),
        new Card('Six', 'Spades', 6),
        new Card('Seven', 'Spades', 7),
        new Card('Eight', 'Spades', 8),
        new Card('Nine', 'Spades', 9),
        new Card('Ten', 'Spades', 10),
        new Card('Jack', 'Spades', 10),
        new Card('Queen', 'Spades', 10),
        new Card('King', 'Spades', 10)
    ];

$('#btnDeal').click(function () {
    deal();
    $(this).toggle();
    $('#btnHit').toggle().click(function () {
        hit();
        hand.sumCardTotal();
    });
});

index3391.html

0 コメント:

コメントを投稿