In this video, I show how to create a simple program on generating adding and subtracting math problems. It is written on Google Sheets with Google Apps Script.
Script to Copy: (below this line)
function getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
function getNumbers() {
//DEFINE ALL ACTIVE SHEETS
var ss = SpreadsheetApp.getActiveSpreadsheet();
//DEFINE MENU SHEET
var mathSheet = ss.getSheetByName("MATH");
//CLEAR DATA
mathSheet.getRange("A1:D3").clear();
//GET VALUES RANDOM 11 = 10
var value1 = getRandomInt(11);
var value2 = getRandomInt(11);
//GET SIGN
var signValue = getRandomInt(2);
if(signValue == 0) { var sign = '+' }
else if (signValue == 1) { var sign = '-' }
//DISPLAY PROBLEM
mathSheet.getRange(1,2).setValue([value1]).setFontSize(36).setFontWeight("bold").setHorizontalAlignment("center");
mathSheet.getRange(2,2).setValue([value2]).setFontSize(36).setFontWeight("bold").setHorizontalAlignment("center");
mathSheet.getRange(2,1).setValue([sign]).setFontSize(36).setFontWeight("bold").setHorizontalAlignment("center");
//SET BORDER
mathSheet.getRange("A2:B2").setBorder(false, false, true, false, false, false, "black", SpreadsheetApp.BorderStyle.SOLID_THICK);
// SET FONT OF ANSWER
mathSheet.getRange(3,2).setFontSize(36).setFontWeight("bold").setHorizontalAlignment("center");
var range = mathSheet.getRange('B3:B3');
SpreadsheetApp.setActiveRange(range);
}
function onEdit(e)
{
var range = e.range;
var spreadSheet = e.source;
var spreadSheetName = spreadSheet.getActiveSheet().getName();
var searchColumn = range.getColumn();
var searchRow = range.getRow();
var inputValue = e.value;
Logger.log('Column: ' + searchColumn + ' Row: ' + searchRow + ' Value: ' + e.value + ' spreadSheetName: ' + spreadSheetName);
//DEFINE ALL ACTIVE SHEETS
var ss = SpreadsheetApp.getActiveSpreadsheet();
//DEFINE MENU SHEET
var mathSheet = ss.getSheetByName("MATH");
if (searchColumn == 2 && searchRow == 3 && e.value != '' && spreadSheetName == 'MATH')
{
// DETERMINE IF ANSWER WAS CORRECT
var value1 = mathSheet.getRange(1,2).getValue();
var value2 = mathSheet.getRange(2,2).getValue();
var sign = mathSheet.getRange(2,1).getValue();
if(sign == '+')
{
var answer = value1 + value2;
}
else if(sign == '-')
{
var answer = value1 - value2;
}
// ANSWER IS CORRECT
if(answer == inputValue)
{
ss.toast('Correct', 'Answer', 3);
getNumbers();
}
// ANSWER IS WRONG
else
{
ss.toast('Try Again', 'Answer', 3);
mathSheet.getRange(3,2).setBackground("red");
var range = mathSheet.getRange('B3:B3');
SpreadsheetApp.setActiveRange(range);
}
}
}
function onOpen(e) {
getNumbers();
}