Как отладить функцию в скрипте Google Apps, которая зависит от других входных данных? - PullRequest
1 голос
/ 15 апреля 2020

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

Например, у меня есть одна функция, позволяющая игроку сбрасывать карты. Сначала они должны отметить любое количество флажков рядом с карточками, которые они sh сбросят. Как только они нажимают кнопку, сценарий находит все карты, рядом с которыми пользователь поставил чек, добавляет их в массив removearray и отправляет их в функцию discardcards для обработки.

Таким образом, конкретный вопрос c состоит в следующем: как правильно отладить эту функцию, если она зависит от пользовательского ввода? Главный вопрос, конечно, заключается в том, есть ли способ правильно отладить такую ​​функцию?

Код:

function discardcards(removearray) {
  var rssheet = ss.getSheetByName("Responses - Shuffle");

  var cards = rssheet.getRange("A1:A");
  var pile = rssheet.getRange("C1:C");
  var i = 1;

  // Iterate through the deck until all cards in the removearray are found and cleared.
  while (removearray.length > 0) {
    var currentcard = cards.getCell(i, 1).getValue();

    // Compare the currentcard to each card in removearray to see if it matches.
    for (var j = 0; j < removearray.length; j++) {
      if (currentcard == removearray[j]) {
        pile.getCell(i, 1).setValue(-1); // Value of -1 indicates that the card is discarded.
        removearray.splice(j, 1); // Delete the card from removearray as it has already been found.
      }
    }
    i++;
  }
}

На данный момент единственный надежный метод, который я нашел, это вставка Browser.msgBox в код на разных этапах, чтобы проверить, что происходит, для вывода на лист. Это громоздко, поскольку мне приходится обновлять код каждый раз перед нажатием кнопки.

В Visual Basi c - единственном другом языке, с которым я знаком - Visual Studio позволяет просматривать переменные и вставлять значения в них во время отладки. Я не видел никакого способа сделать это в скрипте приложений. Есть ли какая-либо такая функция или какая-либо другая стандартная практика, используемая при отладке скрипта Apps?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...