Работа+с+библиотекой - romasan/solitaire-game-engine GitHub Wiki

🏠 В начало

Инициализация и запуск игры
Обработка и сохранение ходов в историю
Подсказки
Обработка выигрыша
Применение предыдущей истории ходов
Автоход в дом
Спецход


Инициализация и запуск игры

SolitaireEngine.init(CONFIG_JSON);

Описание CONFIG_JSON

Обработка и сохранение ходов в историю

SolitaireEngine.on('makeStep', function(step_data) {
    Handler(step_data); // Метод из окружения для сохранения хода.
});

Отменить ход.

SolitaireEngine.emit('undo', STEP_DATA);

Повторить ход.

SolitaireEngine.emit('redo', STEP_DATA);

Подсказки

Показать подсказки.

SolitaireEngine.emit('tips:on');

Скрыть подсказки.

SolitaireEngine.emit('tips:off');

Обработка выигрыша

SolitaireEngine.on('win', function() {
    Handler(); // Метод из окружения выполняемый при выигрыше
});

Запуск проверки на выигрыш вручную, возвращает true если расклад выигран.

SolitaireEngine.winCheck();

Применение предыдущей истории ходов

SolitaireEngine.emit('doHistory', {
    "data": HISTORY_ARRAY,
    "callback": function(step_data) {
        Handler(step_data); // Метод из окружения для сохранения хода.
    }
});

Обработчик перемотки истории.

SolitaireEngine.on('rewindHistory', function(callback) {
    callback({
        "attemptId": ATTEMPT_ID,       // ID попытки решения расклада
        "history": HISTORY_ARRAY,      // массив ходов попытки
        "redoSteps": REDO_STEPS_ARRAY, // массив отменённых ходов
        "undo": UndoHandler,           // Метод из окружения для отмены хода
        "redo": RedoHandler            // Метод из окружения для повтора отменённого хода
    });
});

Сканирование историй ходов из всех попыток.

SolitaireEngine.emit('scanAttempts', {
    "attempts" : ATTEMPTS_ARRAY_OF_HISTORIES, // двумерный массив с ходами для всех попыток
    "callback" : function() {
        SolitaireEngine.init(CONFIG_JSON);
    }
});

Автоход в дом

Выполнить автоход в Дом.

SolitaireEngine.emit('autoMoveToHome');
SolitaireEngine.on('autoMoveToHome:start', function() {
    Handler(); // Метод из окружения срабатывающий при начале автохода
               // например обработка состояния кнопки вызвавшей автоход
});

Вкл./Выкл. режима пометки карт.

SolitaireEngine.emit('toggleMarkerMode');

Обработчик состояния режима пометки карт.

SolitaireEngine.on('markerMode:toggled', function(is_marker_mode) {
    if (is_marker_mode) {
        // пометка карт включена
    } else {
        // пометка карт выключена
    }
});

Спецход

Вкл./Выкл. режима спецхода.

SolitaireEngine.emit('toggleSpecialStepMode');

Обработчик состояния режима спецхода.

SolitaireEngine.on('specialStepMode:toggled', function(data) {
    // data.mode - включен или выключен теперь режим спецхода
    // data.done - был ли выполнен спецход
});

Отменить спецход.

SolitaireEngine.emit('revokeSpecialStep');

Обработка повтора хода после спецхода.
Возвращает количество отменённых ходов во время спецхода, можно использовать для отключения кнопки отмены спецхода, если все отменённые ходы были повторены.

SolitaireEngine.emit('checkToCancelRevokeSpecialStep', function(revoke_length) {
    if (revoke_length === REDO_STEPS_ARRAY.length) {
        // Состояние игрового поля вернулось к прежнему (кнопка повторить ход),
        // на момент до совершения спецхода.
        // Отменить спецход больше нельзя, как и после любого хода.
    }
});

⬆️ Вверх

🏠 В начало

Описание структуры JSON конфигурации ➡️

⚠️ **GitHub.com Fallback** ⚠️