Что я тут не так делаю?
Я пытаюсь построить простую "игру", которая научит моего сына умножению. Скрипт ниже как ссылка на скриншот.
Выпуск:
Умножение не похоже на работу. х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');
}
}