Работа+с+библиотекой - romasan/solitaire-game-engine GitHub Wiki
Инициализация и запуск игры
Обработка и сохранение ходов в историю
Подсказки
Обработка выигрыша
Применение предыдущей истории ходов
Автоход в дом
Спецход
SolitaireEngine.init(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) {
// Состояние игрового поля вернулось к прежнему (кнопка повторить ход),
// на момент до совершения спецхода.
// Отменить спецход больше нельзя, как и после любого хода.
}
});