Adding and Subtracting Math Problems on Google Sheets

Опубликовано: 28 Апрель 2020
на канале: Code With Curt
1,070
14

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();
}