Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   "Ставка -> Карта -> Игра", как умнее сделать? (https://javascript.ru/forum/jquery/32615-stavka-karta-igra-kak-umnee-sdelat.html)

nerv_ 24.10.2012 10:09

Цитата:

Сообщение от Serg_pnz
nerv_, спасибо!

было бы за что :)
Цитата:

Сообщение от Serg_pnz
черт, Map===Card? /*речь о игральных картах))*/, но всё равно прошу словами.

аха. Проглядел.

еще так можно накодить:
- он может выбрать карту;
- ставит/делает ставку;
- если оба выбора сделаны кнопка "Играть" становится активной;
- пользователь может менять карту;
- убавлять/менять ставку;
- соответственно "Играть" тоже должна менять статус "Активна/не активна".

Закомментированные методы для примере в зависимости от реальных потребностей.

var game = {

    _players: [],
    
    addPlayer: function() {
        this._players.push( new Player() );
    },
    
    start: function() {
        // start game
        // some init
    }
};


function Player() {
    this.card = null;
    this.bet = null;
}


Player.prototype = {
    // addCard: function() {
    // },
    changeCard: function() {
        game.buttons.play.updateState( this );
    },
    // removeCard: function() {
    // },
    makeBet: function() {
        game.buttons.play.updateState( this );
    },
    // changeBet: function() {
    // },
    // removeBet: function() {
    // }
};


game.buttons = {
    play: {
        updateState: function( player ) {
            if ( player.card && player.bet ) {
                // some action
                return;
            }
        }
    }
};

Цитата:

Сообщение от Serg_pnz
а можно еще словами логику?

логика простая:
- есть игра, куда можно добавить игрока;
- игрок, у которого есть карта и ставка, а также методы их (карту и ставку) меняющие;
- есть кнопки, в частности кнопка играть (play), у которой имеется метод "обновить состояние" (updateState), который опирается на текущее состояние карты и ставки игрока, и в зависимости от этого меняет свое (кнопки) вкл/выкл.
Т.е. все то, что ты описал :)

DjDiablo 24.10.2012 19:30

Ха)))
Я переживу без плюсика ))

А вот хороший паттерн обижать ненадо.
Пример работы, http://www.z254505.infobox.ru/cardGame.html

исходник http://www.z254505.infobox.ru/cardGame.zip


upd: 25го исправлены небольшие недостатки в примере, вроде возможности нажать на невидимую кнопку game.

Serg_pnz 25.10.2012 09:35

Курю ваши примеры второй день - ооочень абстрактно пока для меня, но я настойчивый)


Часовой пояс GMT +3, время: 15:35.