Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 13.01.2016, 21:48
Аспирант
Отправить личное сообщение для diga Посмотреть профиль Найти все сообщения от diga
 
Регистрация: 13.01.2016
Сообщений: 57

сможешь помочь?))))
Ответить с цитированием
  #42 (permalink)  
Старый 13.01.2016, 21:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

сделать изменения как указано в посте 38 и заменить файл common.js на код ниже.
var init = function() {


//--- start ---
var board,
  game = new Chess(),
  statusEl = $('#status'),
  fenEl = $('#fen'),
  pgnEl = $('#pgn'),
  pos = [];
  pgnEl.on('click', 'a',function(event) {
  event.preventDefault();
  var data = $(this).data('move').split(',');
  var i = $(this).index() * 2;
  board.position(pos[i],false);
  board.move.apply(null,data);
})
// do not pick up pieces if the game is over
// only pick up pieces for the side to move
var onDragStart = function(source, piece, position, orientation) {
  board.position(game.fen());
  if (game.game_over() === true ||
      (game.turn() === 'w' && piece.search(/^b/) !== -1) ||
      (game.turn() === 'b' && piece.search(/^w/) !== -1)) {
    return false;
  }
};

var onDrop = function(source, target) {
  // see if the move is legal
  var move = game.move({
    from: source,
    to: target,
    promotion: 'q' // NOTE: always promote to a queen for example simplicity
  });

  // illegal move
  if (move === null) return 'snapback';

  updateStatus();
};

// update the board position after the piece snap
// for castling, en passant, pawn promotion
var onSnapEnd = function() {
  board.position(game.fen());
};

var updateStatus = function() {
  var status = '';

  var moveColor = 'White';
  if (game.turn() === 'b') {
    moveColor = 'Black';
  }

  // checkmate?
  if (game.in_checkmate() === true) {
    status = 'Game over, ' + moveColor + ' is in checkmate.';
  }

  // draw?
  else if (game.in_draw() === true) {
    status = 'Game over, drawn position';
  }

  // game still on
  else {
    status = moveColor + ' to move';

    // check?
    if (game.in_check() === true) {
      status += ', ' + moveColor + ' is in check';
    }
  }
  pos.push(game.fen());
  statusEl.html(status);
  fenEl.html(game.fen());
  pgnEl.html(game.pgn());
};


$('#ruyLopezBtn').on('click', function() {
	board.start;
	
});
var cfg = {
  //orientation: 'black',
  //showNotation: false,
  moveSpeed: 'slow',
  snapbackSpeed: 500,
  snapSpeed: 100,
  
  draggable: true,
  position: 'start',
  onDragStart: onDragStart,
  onDrop: onDrop,
  onSnapEnd: onSnapEnd
};
var board = ChessBoard('board', cfg);
$('#startPositionBtn').on('click', board.start);
$('#flipOrientationBtn').on('click', board.flip);
$('#moveBtn').on('click', function() {
  board.move('a2-a4', 'h7-h5');
});
updateStatus();

//--- end example JS ---

}; // end init()
$(document).ready(init);

итого : клик по любому ходу показывает анимацию именно этого хода из позиции перед этим ходом, клик по полю востанавливает текущую позицию.

Последний раз редактировалось рони, 13.01.2016 в 21:58.
Ответить с цитированием
  #43 (permalink)  
Старый 14.01.2016, 20:33
Аспирант
Отправить личное сообщение для diga Посмотреть профиль Найти все сообщения от diga
 
Регистрация: 13.01.2016
Сообщений: 57

Сообщение от рони
сделать изменения как указано в посте 38 и заменить файл common.js на код ниже.
шикарно, спасибо)
Ответить с цитированием
  #44 (permalink)  
Старый 18.01.2016, 21:52
Аспирант
Отправить личное сообщение для diga Посмотреть профиль Найти все сообщения от diga
 
Регистрация: 13.01.2016
Сообщений: 57

Сообщение от рони
сделать изменения как указано в посте 38 и заменить файл common.js на код ниже.
нашел такой интересный "баг", как можно исправить его? (баг, когда Дамой съедаю коня, а потом заново просматриваю ходы, получается так, будто я Королем съел своего же коня

Спасибо)
Ответить с цитированием
  #45 (permalink)  
Старый 18.01.2016, 23:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

diga,
сами сами закричали бояре!
Ответить с цитированием
  #46 (permalink)  
Старый 19.01.2016, 18:28
Аспирант
Отправить личное сообщение для diga Посмотреть профиль Найти все сообщения от diga
 
Регистрация: 13.01.2016
Сообщений: 57

Сообщение от рони Посмотреть сообщение
diga,
сами сами закричали бояре!
хотя бы подсказочку в каком направлении стоит идти)
Ответить с цитированием
  #47 (permalink)  
Старый 19.01.2016, 18:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

diga,
после хода чёрных идёт просмотр и хода белых и хода чёрных -- может нужна пауза между ходами или ссылки отдельные для белых и чёрных, а не парой
Ответить с цитированием
  #48 (permalink)  
Старый 20.01.2016, 16:57
Аспирант
Отправить личное сообщение для diga Посмотреть профиль Найти все сообщения от diga
 
Регистрация: 13.01.2016
Сообщений: 57

Сообщение от рони
после хода чёрных идёт просмотр и хода белых и хода чёрных -- может нужна пауза между ходами или ссылки отдельные для белых и чёрных, а не парой
учел все это, сделал так:

/* store the previous generated move_string if we have one */
          if (move_string.length) {
            moves.push(move_string);
          }
          var dt_move = [make_pretty(move).from + '-' + make_pretty(move).to];
          var temp = reversed_history.slice(-1);
		  move_string = pgn_move_number + '.';
          pgn_move_number++;
        }
        move_string = move_string + ' ' +'<a href="#" data-move="'+dt_move+'">' + move_to_san(move) + '</a>';
		dt_move.pop();
		if(temp.length) dt_move.push(make_pretty(temp[0]).from + '-' + make_pretty(temp[0]).to);
        make_move(move);


в файле common.js просто убрал умножение на 2, и все работает как надо
var i = $(this).index();


Спасибо большое за помощь
Ответить с цитированием
  #49 (permalink)  
Старый 20.01.2016, 17:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

diga,
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Срабатывание функции по нажатию на checkbox Valentin1918 Общие вопросы Javascript 9 09.11.2016 12:34
Двойное срабатывание функции webbaster Общие вопросы Javascript 3 08.08.2015 23:29
События - focusout и click отменить повторное срабатывание функции egorychmaster Элементы интерфейса 1 25.06.2015 13:35
Проблема с выходным значением функции sparrow Общие вопросы Javascript 4 18.01.2014 18:13
предотвратить срабатывание функции posta Общие вопросы Javascript 8 05.06.2011 16:37