Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.03.2020, 18:38
Кандидат Javascript-наук
Отправить личное сообщение для jaroslav.tavgen Посмотреть профиль Найти все сообщения от jaroslav.tavgen
 
Регистрация: 18.09.2014
Сообщений: 128

Срабатывание брейкбоинта зависит от... console.log?
Я пишу шахматного бота, и столкнулся с такой штукой. Я ставлю условный брейктпоинт, что переменная должна быть равна определённому значению.

Этот брейкпойнт не срабатывает (браузер - Chrome). Однако если я перед этой строчкой ставлю console.log(*та самая переменная*), то брейкпойнт срабатывает!

В коде ниже я ставлю брейкпойнт 'firstMove === "Qd7"' на строчке номер 10. Он срабатывает. Но если убрать console.log(firstMove) на строчке номер 9, то кондициональный брейкпойнт срабатывать перестаёт! В чём причина?

Фрагмент кода:
moves.last().every(
        firstMove=>{
            makeAMove(firstMove);
            positions.push(game.fen());
            worstPositionValuations.push(-Infinity);
            moves.push(game.moves());
            moves.last().every(
                secondMove=> {
                    console.log(firstMove);
                    makeAMove(secondMove);
                    positions.push(game.fen());
                    worstPositionValuations.push(Infinity);
                    moves.push(game.moves());
                    moves.last().every(
                        thirdMove => {
                            makeAMove(thirdMove);
                            positions.push(game.fen());
                            positionValuation = position_valuation(positions.last());
                            if (worstPositionValuations.last() > positionValuation) {
                                worstPositionValuations.last(positionValuation);
                            }
                            positions.pop();
                            goToPosition(positions.last());
                            return true;
                        }
                    );
                    moves.pop();
                    if (worstPositionValuations[worstPositionValuations.length - 2] < worstPositionValuations.last()) {
                        worstPositionValuations[worstPositionValuations.length - 2] = worstPositionValuations.last();
                    }
                    worstPositionValuations.pop();
                    positions.pop();
                    goToPosition(positions.last());
                    return true;
                }
            );
            moves.pop();
            positions.pop();
            goToPosition(positions.last());
            if(worstPositionValuations.last() < initialPositionValuation){
                moveToMake = firstMove;
                return false;
            }
            worstPositionValuations.pop();
            return true;
        }
    );

Последний раз редактировалось jaroslav.tavgen, 22.03.2020 в 18:54.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обертка на console.log German Malinovskiy Общие вопросы Javascript 8 14.08.2012 17:58