Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Срабатывание функции с определенным значением (https://javascript.ru/forum/misc/60664-srabatyvanie-funkcii-s-opredelennym-znacheniem.html)

laimas 13.01.2016 14:12

рони,
кстати, фигуру можно вычислить, если начать с конца истории, но надо знать цвет фигур первого хода.
Что-то я сперва подумал (из описания истории 1.... 2....), что каждый шаг в ней, это запись ходов двух игроков. Только внимательно посмотрев на картинку... Значит с обработчиком просто, а вот фигуры надо записывать в data-*, если только ходы не сохраняются уже где-то.

diga 13.01.2016 14:13

Цитата:

Сообщение от laimas (Сообщение 403558)
PS. Видимо нужно еще и сбрасывать ход по истории, вернув состояние игры до этого, чтобы можно было ее продолжить?

нет сбрасывать не нужно, я как понял, там есть функция которая продолжает игру с того момента, где остановились.


Цитата:

Сообщение от рони (Сообщение 403559)
diga,
наверно где-то есть данные всех ходов -- и прежде чем показать ход из середины партии наверно надо вывести все предыдущие ходы до выбранного ....

да я тоже так же думаю, так же вариант использовать специальную нотацию, которая так же имеется в данном скрипте, т.к. скрипт не мой, и пока не силен в языке, трудновато разобраться, много времени уходит на решение вопросов которые решаются в 2-3 строчки.

Сам скрипт я взял из этого сайта. Все вроде как красиво и понять, захотел свое добавить и все, пошло не понимание. Может сделать сохранение нотации, и уже восстанавливать ходы используя нотацию?

laimas 13.01.2016 14:16

Цитата:

Сообщение от diga
нет сбрасывать не нужно, я как понял, там есть функция которая продолжает игру с того момента, где остановились.

Если есть таковое, значит она начнет играть с последнего хода, а вы хотите выполнить ход из истории, то есть добавить такую функцию самостоятельно. Предположим, что последний ход с которого можно возобновить игру записывается как раз с вызовом board.move(). Сделали вы ход из истории, любой, с какого хода тогда возобновится игра?

diga 13.01.2016 14:18

Цитата:

Сообщение от laimas (Сообщение 403568)
рони,
кстати, фигуру можно вычислить, если начать с конца истории, но надо знать цвет фигур первого хода.
Что-то я сперва подумал (из описания истории 1.... 2....), что каждый шаг в ней, это запись ходов двух игроков. Только внимательно посмотрев на картинку... Значит с обработчиком просто, а вот фигуры надо записывать в data-*, если только ходы не сохраняются уже где-то.

так разве не белые всегда ходят в стандартной игре?)
судя по источника скрипта, вся история храниться в нотации вида
ruyLopez = 'r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R';

и при вызове функции фигуры перемещаются как надо. Но тогда нужно хранить историю нотации? чтоб знать в какой момент была произведено изменение? или по одной нотации и зная какие ходы были совершены восстановить текущую нотацию и отправить в обработчик?

diga 13.01.2016 14:23

Цитата:

Сообщение от laimas (Сообщение 403570)
Если есть таковое, значит она начнет играть с последнего хода, а вы хотите выполнить ход из истории, то есть добавить такую функцию самостоятельно. Предположим, что последний ход с которого можно возобновить игру записывается как раз с вызовом board.move(). Сделали вы ход из истории, любой, с какого хода тогда возобновится игра?

игра возобновиться с того момента, когда был сделан последний ход, в не зависимости от того просмотрел я старые ходы или нет, т.е. если я во время просмотра старого хода я нажал на историю, и решил выйти пешкой, то все фигуры станут на места соответствующие последнему ходу, данная функция только показывает расположение фигур на доске, но сами координаты текущих расположений фигур не изменят

laimas 13.01.2016 14:25

Цитата:

Сообщение от diga
так разве не белые всегда ходят в стандартной игре?)


Я не знаю что такое стандартная по отношению к шахматам, но первый ход в шахматах разыгрывается.

Я писал код для шахмат, для серверного языка, но суть не в этом, помню, но смутно, да есть у нее свой язык нотации, специально искал его описание. Есть в сети оно.

Узнать ход по нотации не сложно. А вот что будет с нотацией после выполнения хода из истории, это вопрос. По идее нельзя допускать ее изменения, и сам ход из истории как-то "выделять", не давая при этом играть, пока этот ход не будет сброшен.

Мне кажется так, ибо история пишется автоматом.

laimas 13.01.2016 14:27

Цитата:

Сообщение от diga
игра возобновиться с того момента, когда был сделан последний ход, в не зависимости от того просмотрел я старые ходы или нет, т.е. если я во время просмотра старого хода я нажал на историю, и решил выйти пешкой, то все фигуры станут на места соответствующие последнему ходу


Вы уверены? Если да, то такое уже должно быть реализовано в игре, тогда к чему вопрос? :)

diga 13.01.2016 14:32

Цитата:

Сообщение от laimas (Сообщение 403575)
Вы уверены? Если да, то такое уже должно быть реализовано в игре, тогда к чему вопрос? :)

вопрос в том как реализовать просмотр ходов по истории) могу скинуть скрипт, если это лучше поможет меня понять ;)

diga 13.01.2016 14:40

Вложений: 1
Цитата:

Сообщение от laimas (Сообщение 403575)
Вы уверены? Если да, то такое уже должно быть реализовано в игре, тогда к чему вопрос? :)

скрипт во вложении, посмотри что можно сделать, буду очень благодарен

laimas 13.01.2016 14:41

Цитата:

Сообщение от diga
вопрос в том как реализовать просмотр ходов по истории

Щелчок по тегу А нужного хода, а дальше "сходить назад" начиная от последнего хода по текущий, это не сложно будет сделать.

Но история пишется автоматически, по крайней мере спец. кнопки для этого не видно, а значит и она по идее должна измениться при этом. Я так полагаю, а вы говорите, что сбрасывать/не разрешать играть при этом, не нужно. Если я прав, значит игру уже не возобновить с последнего хода.


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