Что я тут не так делаю?

Я пытаюсь построить простую "игру", которая научит моего сына умножению. Скрипт ниже как ссылка на скриншот.

Выпуск:

Умножение не похоже на работу. х1* х2 возвращается #NUM!, Когда я проверил электронную таблицу, числа не являются текстовой строкой.

Что я тут не так делаю?

function multiplicationgame() {



  var GameSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Multiplication");



  var x1 = GameSheet.getRange("A2");
  var x2 = GameSheet.getRange("B2");




  // for generating a random number Math.floor((Math.random() * 10) + 1);
  x1.setValue(Math.floor((Math.random() * 10) + 1));
  x2.setValue(Math.floor((Math.random() * 10) + 1));


  var ui = SpreadsheetApp.getUi();
  var response = ui.prompt('Enter Answer Here:');

  // creates a temp halt in speardsheet execution till the answer is entered
  SpreadsheetApp.flush();

  var Answer = GameSheet.getRange("A7").getValue();


  var x3 = GameSheet.getRange("B7");


  if (Answer == x1*x2) (x3.setValue('Thats correct! Well done'));
  else (x3.setValue('Thats wrong! Better luck next time'))


}

1 ответ

Решение

Попробуй это:

Процесс умножения восстановлен.

Вы использовали диапазон в качестве значения.

function multiplicationgame() {
  var GameSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet71");
  var x1 = GameSheet.getRange("A2");
  var x2 = GameSheet.getRange("B2");
  var x3 = GameSheet.getRange("A7");
  var x4=GameSheet.getRange("B7");

  // for generating a random number Math.floor((Math.random() * 10) + 1);
  var m1=Math.floor((Math.random() * 10) + 1);
  var m2=Math.floor((Math.random() * 10) + 1);
  x1.setValue(m1);
  x2.setValue(m2);
  SpreadsheetApp.flush();
  var ui = SpreadsheetApp.getUi();
  var response = ui.prompt('Multiplication', Utilities.formatString('%s x %s = ?',m1,m2 ), ui.ButtonSet.OK);
  // creates a temp halt in speardsheet execution till the answer is entered
  x3.setValue(response.getResponseText());
  SpreadsheetApp.flush();
  var Answer = GameSheet.getRange("A7").getValue();

  if (Answer == m1*m2) {
    x4.setValue('Thats correct! Well done');
  }else{
    x4.setValue('Thats wrong! Better luck next time');
  }
}
Другие вопросы по тегам