13.01.2016, 14:12
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
рони,
кстати, фигуру можно вычислить, если начать с конца истории, но надо знать цвет фигур первого хода.
Что-то я сперва подумал (из описания истории 1.... 2....), что каждый шаг в ней, это запись ходов двух игроков. Только внимательно посмотрев на картинку... Значит с обработчиком просто, а вот фигуры надо записывать в data-*, если только ходы не сохраняются уже где-то.
|
|
13.01.2016, 14:13
|
Аспирант
|
|
Регистрация: 13.01.2016
Сообщений: 57
|
|
Сообщение от laimas
|
PS. Видимо нужно еще и сбрасывать ход по истории, вернув состояние игры до этого, чтобы можно было ее продолжить?
|
нет сбрасывать не нужно, я как понял, там есть функция которая продолжает игру с того момента, где остановились.
Сообщение от рони
|
diga,
наверно где-то есть данные всех ходов -- и прежде чем показать ход из середины партии наверно надо вывести все предыдущие ходы до выбранного ....
|
да я тоже так же думаю, так же вариант использовать специальную нотацию, которая так же имеется в данном скрипте, т.к. скрипт не мой, и пока не силен в языке, трудновато разобраться, много времени уходит на решение вопросов которые решаются в 2-3 строчки.
Сам скрипт я взял из этого сайта. Все вроде как красиво и понять, захотел свое добавить и все, пошло не понимание. Может сделать сохранение нотации, и уже восстанавливать ходы используя нотацию?
|
|
13.01.2016, 14:16
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от diga
|
нет сбрасывать не нужно, я как понял, там есть функция которая продолжает игру с того момента, где остановились.
|
Если есть таковое, значит она начнет играть с последнего хода, а вы хотите выполнить ход из истории, то есть добавить такую функцию самостоятельно. Предположим, что последний ход с которого можно возобновить игру записывается как раз с вызовом board.move(). Сделали вы ход из истории, любой, с какого хода тогда возобновится игра?
|
|
13.01.2016, 14:18
|
Аспирант
|
|
Регистрация: 13.01.2016
Сообщений: 57
|
|
Сообщение от laimas
|
рони,
кстати, фигуру можно вычислить, если начать с конца истории, но надо знать цвет фигур первого хода.
Что-то я сперва подумал (из описания истории 1.... 2....), что каждый шаг в ней, это запись ходов двух игроков. Только внимательно посмотрев на картинку... Значит с обработчиком просто, а вот фигуры надо записывать в data-*, если только ходы не сохраняются уже где-то.
|
так разве не белые всегда ходят в стандартной игре?)
судя по источника скрипта, вся история храниться в нотации вида
ruyLopez = 'r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R';
и при вызове функции фигуры перемещаются как надо. Но тогда нужно хранить историю нотации? чтоб знать в какой момент была произведено изменение? или по одной нотации и зная какие ходы были совершены восстановить текущую нотацию и отправить в обработчик?
|
|
13.01.2016, 14:23
|
Аспирант
|
|
Регистрация: 13.01.2016
Сообщений: 57
|
|
Сообщение от laimas
|
Если есть таковое, значит она начнет играть с последнего хода, а вы хотите выполнить ход из истории, то есть добавить такую функцию самостоятельно. Предположим, что последний ход с которого можно возобновить игру записывается как раз с вызовом board.move(). Сделали вы ход из истории, любой, с какого хода тогда возобновится игра?
|
игра возобновиться с того момента, когда был сделан последний ход, в не зависимости от того просмотрел я старые ходы или нет, т.е. если я во время просмотра старого хода я нажал на историю, и решил выйти пешкой, то все фигуры станут на места соответствующие последнему ходу, данная функция только показывает расположение фигур на доске, но сами координаты текущих расположений фигур не изменят
|
|
13.01.2016, 14:25
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от diga
|
так разве не белые всегда ходят в стандартной игре?)
|
Я не знаю что такое стандартная по отношению к шахматам, но первый ход в шахматах разыгрывается.
Я писал код для шахмат, для серверного языка, но суть не в этом, помню, но смутно, да есть у нее свой язык нотации, специально искал его описание. Есть в сети оно.
Узнать ход по нотации не сложно. А вот что будет с нотацией после выполнения хода из истории, это вопрос. По идее нельзя допускать ее изменения, и сам ход из истории как-то "выделять", не давая при этом играть, пока этот ход не будет сброшен.
Мне кажется так, ибо история пишется автоматом.
|
|
13.01.2016, 14:27
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от diga
|
игра возобновиться с того момента, когда был сделан последний ход, в не зависимости от того просмотрел я старые ходы или нет, т.е. если я во время просмотра старого хода я нажал на историю, и решил выйти пешкой, то все фигуры станут на места соответствующие последнему ходу
|
Вы уверены? Если да, то такое уже должно быть реализовано в игре, тогда к чему вопрос?
|
|
13.01.2016, 14:32
|
Аспирант
|
|
Регистрация: 13.01.2016
Сообщений: 57
|
|
|
|
13.01.2016, 14:40
|
Аспирант
|
|
Регистрация: 13.01.2016
Сообщений: 57
|
|
Сообщение от laimas
|
Вы уверены? Если да, то такое уже должно быть реализовано в игре, тогда к чему вопрос?
|
скрипт во вложении, посмотри что можно сделать, буду очень благодарен
|
|
13.01.2016, 14:41
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от diga
|
вопрос в том как реализовать просмотр ходов по истории
|
Щелчок по тегу А нужного хода, а дальше "сходить назад" начиная от последнего хода по текущий, это не сложно будет сделать.
Но история пишется автоматически, по крайней мере спец. кнопки для этого не видно, а значит и она по идее должна измениться при этом. Я так полагаю, а вы говорите, что сбрасывать/не разрешать играть при этом, не нужно. Если я прав, значит игру уже не возобновить с последнего хода.
|
|
|
|