import('./Model/Card.js') function isSet(cards) { let attributesMatrix = []; cards.forEach(element => { attributesMatrix.push(element.getAttributes()); }); // Idéalement check si toute les listes d'attributs sont de même taille for(let i = 0; i < attributesMatrix[0].length; i++) { let listAttributes = [] for(let j = 0; j < attributesMatrix.length; j++) { listAttributes.push(attributesMatrix[j][i]); } if(!checkAttributes(listAttributes)){ return false; } } return true; } function checkAttributes(attributes){ let orderingMethod = "null"; // Can only take ["null", "same", "different"] let boolLoop = true; attributes.forEach((value, index) => { if(index !== attributes.length) { for (let i = index+1; i < attributes.length; i++) { if(attributes[i] === value) { if(orderingMethod === "null" || orderingMethod === "same") { orderingMethod = "same"; } else { boolLoop = false; } } else { if(orderingMethod === "null" || orderingMethod === "different") { orderingMethod = "different" } else { boolLoop = false } } } } }); return boolLoop === true; } // The digit refere to the number of cards required to make a set // function numberOfSets3(deck){ let res = 0 for(i=0;i