Некоторое время назад я создал небольшое веб-приложение для карточных игр для развлечения. Игрок играет против компьютера и в основном он работает нормально. Иногда, несмотря на то, что компьютерный игрок зацикливается, цель игры состоит в том, чтобы потерять все ваши карты, и если у вас нет карты для игры, вы берете стопку. Иногда компьютер играет x, y, z, берет стопку, играет x, yz, берет стопку и т. Д.
Я отслеживаю свои ходы, поэтому в любой момент у меня есть массив, который выглядит примерно так : [C2, D5, H2, S4, C5, H2, S4, C5, H2, S4, C5 ]
В этом случае я вижу, что я вошел в цикл, проигрывая H2, S4, C5, затем забирая стопку и повторяя.
Итак, общая проблема состоит в том, что лучший способ обнаружить повторяющиеся шаблоны в списке? Я, вероятно, мог бы что-нибудь придумать, используя простой цикл for, пытаясь найти карту, которую я собираюсь сыграть, и если я найду ее в позиции x, я смогу проверить, повторяется ли шаблон от x до n в позиции x- (nx) к x, но это похоже на проблему, для которой может быть хороший алгоритм. Как бы вы это закодировали, учитывая следующую сигнатуру функции:
function findLoops(previousMoves, nextMove, maxPatternLength) {
//Return [loopLength, loopCount] or null if there are no loops
}
ps это не домашнее задание, игра существует и находится на http://www.idiot-cardgame.com , если кому-то интересно: .text (сообщение) .dialog ({autoOpen: false, height: 140, modal: true, title: "...
Я использую следующий код для отображения диалогового окна с пользовательским интерфейсом jQuery:
var $dialog = $('')
.text(msg)
.dialog({
autoOpen: false,
height: 140,
modal: true,
title: "Confirm",
buttons: {
"Yes": function() {
$(this).dialog('close');
},
"Cancel": function() {
$(this).dialog('close');
}
}
});
$dialog.dialog('open');
Однако у кнопок нет стилей. Я заметил, что для кнопок сгенерирован следующий HTML-код:
Из демонстраций пользовательского интерфейса jQuery это:
Т.е. стили CSS отсутствуют. Вы знаете, почему?