File indexing completed on 2024-04-21 14:43:37
0001 /* GCompris 0002 * 0003 * SPDX-FileCopyrightText: 2014 Bruno Coudoin 0004 * 0005 * SPDX-License-Identifier: GPL-3.0-or-later 0006 */ 0007 0008 .import "qrc:/gcompris/src/core/core.js" as Core 0009 0010 function getAddTable(table) { 0011 var result = [] 0012 for(var i = 1; i <= 10; ++i) { 0013 if(Math.floor(Math.random()*2)) 0014 // The mathematical addition sign 0015 result.push(["" + table + " " + qsTr("+") + " " + i, 0016 table + i]) 0017 else 0018 result.push(["" + i + " " + qsTr("+") + " " + table, 0019 table + i]) 0020 } 0021 return result 0022 } 0023 0024 function getMinusTable(table) { 0025 var result = [] 0026 for(var i = 1; i <= 10; ++i) { 0027 // The mathematical subtraction sign 0028 result.push(["" + (i + table) + " " + qsTr("−") + " " + table, 0029 i]) 0030 } 0031 return result 0032 } 0033 0034 function getMultTable(table) { 0035 var result = [] 0036 for(var i = 1; i <= 10; ++i) { 0037 if(Math.floor(Math.random()*2)) 0038 // The mathematical multiplication sign 0039 result.push(["" + table + " " + qsTr("×") + " " + i, 0040 table * i]) 0041 else 0042 result.push(["" + i + " " + qsTr("×") + " " + table, 0043 table * i]) 0044 } 0045 return result 0046 } 0047 0048 function getDivTable(table) { 0049 var result = [] 0050 for(var i = 1; i <= 10; ++i) { 0051 // The mathematical division sign 0052 result.push(["" + i * table + " " + qsTr("÷") + " " + table, 0053 i]) 0054 } 0055 return result 0056 } 0057 0058 function removeDuplicates(tAll) { 0059 Core.shuffle(tAll) 0060 var result = [] 0061 // Remove duplicate values with the same result 0062 for(var i = 0; i < tAll.length; ++i) { 0063 var gotIt = false 0064 for(var j = 0; j < result.length; ++j) { 0065 if(tAll[i][1] === result[j][1]) 0066 gotIt = 1 0067 } 0068 if(!gotIt) 0069 result.push(tAll[i]) 0070 } 0071 return result 0072 } 0073 0074 function getAddMinusTable(table) { 0075 var t1 = getAddTable(table) 0076 var t2 = getMinusTable(table) 0077 return removeDuplicates(t1.concat(t2)) 0078 } 0079 0080 function getAddMinusMultDivTable(table) { 0081 var t1 = getAddTable(table) 0082 var t2 = getMinusTable(table) 0083 var t3 = getMultTable(table) 0084 var t4 = getDivTable(table) 0085 return removeDuplicates(t1.concat(t2, t3, t4)) 0086 } 0087 0088 function getMultDivTable(table) { 0089 var t1 = getMultTable(table) 0090 var t2 = getDivTable(table) 0091 return removeDuplicates(t1.concat(t2)) 0092 } 0093