Merge branch 'master' into card-class
continuous-integration/drone/push Build is passing Details

pull/59/head^2^2
Bastien JACQUELIN 2 years ago
commit 0fe3e6f05a

@ -11,7 +11,6 @@
<h1>Console - test </h1>
<section>
</section>
<script src="../Model/Exceptions.js"></script>
<script src="../Model/Card.js"></script>
@ -19,6 +18,7 @@
<script src="../Model/Const.js"></script>
<script src="../Model/Factory.js"></script>
<script src="../Model/Deck.js"></script>
<script src="../../test/testsIsHyperset.js"></script>
<script src="main.js"></script>
</body>

@ -44,6 +44,23 @@ tab.push("gngngn")
console.log(tab)
// CREATE HYPERSET
function checkList(list) {
// Vérifier si tous les éléments sont identiques
if (list.every(element => element === list[0])) {
return 1;
}
if ([...new Set(list)].length === list.length) {
return 0;
}
// Si tous les éléments ne sont ni identiques ni différents
return 2;
}
deck.checkSet(customCard);
// CREATE HYPERSET
function checkList(list) {
// Vérifier si tous les éléments sont identiques
if (list.every(element => element === list[0])) {

@ -4,4 +4,4 @@ const TAB_SHAPE = ['diamond','oval','wave','star','triangle'];
const TAB_FILLING = ['empty','stripped','full','pointed','squared'];
const TAB_OUTLINE = ['continuous','dotted','hyphen','cloudy','sharpy'];
const ATTRIBUTES=[TAB_COLOR,TAB_NUMBER,TAB_SHAPE,TAB_FILLING,TAB_OUTLINE];
const IDX_ATTRIBUTES=["color","number","shape","filling","outline"];
const IDX_ATTRIBUTES=["color","number","shape","filling","outline"];

@ -1,4 +1,4 @@
import('./Model/Card.js')
//import('./Model/Card.js')
function isSet(cards)
@ -131,4 +131,116 @@ function setsCounter(deck, numberForSet){
console.error('The number of cards in a Set is not existing', numberForSet)
}
function createElements(attributsCartes, listeAttributs) {
let l = []
let verif;
listeAttributs.forEach(element => {
verif = false;
attributsCartes.forEach(attribCartes => {
if (element == attribCartes) {
verif = true;
}
})
if (verif == false) {
l.push(element);
}
});
return l
}
function trouveElements(attributsCartes) {
let x;
tabColor.forEach(element => {
if (element == attributsCartes[0]) {
x = createElements(attributsCartes, tabColor);
}
});
tabNumber.forEach(element => {
if (element == attributsCartes[0]) {
x = createElements(attributsCartes, tabNumber);
}
});
tabShape.forEach(element => {
if (element == attributsCartes[0]) {
x = createElements(attributsCartes, tabShape);
}
});
tabFilling.forEach(element => {
if (element == attributsCartes[0]) {
x = createElements(attributsCartes, tabFilling);
}
});
tabOutline.forEach(element => {
if (element == attributsCartes[0]) {
x = createElements(attributsCartes, tabOutline);
}
});
return x;
}
function createCard(cards) {
let attributesMatrix = [];
let carteFinale = [];
let listeInter = [];
cards.forEach(element => {
attributesMatrix.push(element.getAttributes());
});
for (let i = 0; i < attributesMatrix[0].length; i++) {
listeInter = [];
attributesMatrix.forEach(element => {
listeInter.push(element[i]);
});
//S'ils sont tous égaux
if (listeInter.every(element => element === listeInter[0])) {
l = []
l.push(listeInter[0])
carteFinale.push(l);
}
else {
//S'ils sont tous différents
if ([...new Set(listeInter)].length === listeInter.length) {
carteFinale.push(trouveElements(listeInter));
}
//Sinon
else {
carteFinale.push([]);
}
}
}
console.log(carteFinale);
return carteFinale;
}
function isHyperset(cardsLeft, cardsRight) {
left = createCard(cardsLeft)
right = createCard(cardsRight)
let verif;
for (let i = 0; i < left.length; i++) {
verif = false;
left[i].forEach(elementG => {
right[i].forEach(elementD => {
if (elementD == elementG) {
verif=true
}
})
})
if (verif == false) {
return false;
}
}
return true;
}

@ -0,0 +1,45 @@
console.log("TEST FOR ISSET")
let card1 = new Card5("bleu","1","rond","remplis","plein")
let card2 = new Card5("bleu","2","rond","remplis","plein")
let card3 = new Card5("bleu","3","rond","remplis","plein")
let card4 = new Card5("bleu","4","rond","remplis","plein")
let card5 = new Card5("bleu","5","rond","remplis","plein")
let card6 = new Card5("vert","6","carre","vide","tapis")
let realSet = [card1,card2,card3,card4,card5]
let unRealSet = [card2,card3,card4,card5,card6]
console.group("FOR SET OF 5")
console.log("Number of Sets -> 1")
console.assert(numberOfSets5(realSet)==1)
console.log("Number of Sets -> 0")
console.assert(numberOfSets5(unRealSet)==0)
console.groupEnd()
card1 = new Card4WithoutColor("1","rond","plein","tapis")
card2 = new Card4WithoutColor("2","rond","plein","tapis")
card3 = new Card4WithoutColor("3","rond","plein","tapis")
card4 = new Card4WithoutColor("4","rond","plein","tapis")
card5 = new Card4WithoutColor("4","carre","vide","plein")
realSet = [card1,card2,card3,card4]
unRealSet = [card2,card3,card4,card5]
console.group("FOR SET OF 4")
console.log("Number of Sets -> 1")
console.assert(numberOfSets4(realSet)==1)
console.log("Number of Sets -> 0")
console.assert(numberOfSets4(unRealSet)==0)
console.groupEnd()

@ -0,0 +1,61 @@
let card1 = new Card4WithoutOutline('red', 3, 'wave', 'full');
let card2 = new Card4WithoutOutline('red', 3, 'oval', 'empty');
let card3 = new Card4WithoutOutline('blue', 2, 'oval', 'full');
let card4 = new Card4WithoutOutline('green', 1, 'wave', 'pointed');
let card5 = new Card4WithoutOutline('green', 1, 'wave', 'full');
deckA = [];
deckB = [];
deckC = [];
deckA.push(card1, card2);
deckB.push(card3, card4);
deckC.push(card3, card5);
console.assert(isHyperset(deckA, deckB) == true);
console.assert(isHyperset(deckA, deckC) == false);
let BcardG1 = new Card5('red', 4, 'oval', 'empty', 'fullO');
let BcardG2 = new Card5('red', 3, 'oval', 'full', 'fullO');
let BcardG3 = new Card5('red', 2, 'oval', 'squared', 'fullO');
let BcardG4 = new Card5('red', 1, 'oval', 'pointed', 'fullO');
let BcardD1 = new Card5('green', 3, 'oval', 'pointed', 'cloudy');
let BcardD2 = new Card5('blue', 2, 'oval', 'squared', 'sharpy');
let BcardD3 = new Card5('purple', 4, 'oval', 'full', 'hyphen');
let BcardD4 = new Card5('orange', 1, 'oval', 'empty', 'dotted');
let BcardD5 = new Card5('purple', 4, 'oval', 'stripped', 'hyphen');
BdeckA = [];
BdeckB = [];
BdeckC = [];
BdeckD = [];
BdeckE = [];
BdeckA.push(BcardG1, BcardG2, BcardG3);
BdeckB.push(BcardD1, BcardD2, BcardD3);
BdeckC.push(BcardD1, BcardD2, BcardD5);
BdeckD.push(BcardG1, BcardG2, BcardG3, BcardG4);
BdeckE.push(BcardD1, BcardD2, BcardD3, BcardD4);
console.assert(isHyperset(BdeckA, BdeckB) == true);
console.assert(isHyperset(BdeckA, BdeckC) == false);
console.assert(isHyperset(BdeckD, BdeckE) == true);
let Ccard1 = new Card4WithoutShape('blue', 3, 'empty', 'cloudy');
let Ccard2 = new Card4WithoutShape('red', 3, 'empty', 'cloudy');
let Ccard3 = new Card4WithoutShape('green', 3, 'empty', 'cloudy');
let Ccard4 = new Card4WithoutShape('purple', 3, 'empty', 'sharpy');
let Ccard5 = new Card4WithoutShape('purple', 3, 'empty', 'sharpy');
let Ccard6 = new Card4WithoutShape('purple', 3, 'empty', 'sharpy');
CdeckA = [];
CdeckB = [];
CdeckA.push(Ccard1, Ccard2, Ccard3);
CdeckB.push(Ccard4, Ccard5, Ccard6);
console.assert(isHyperset(CdeckA, CdeckB) == false);
Loading…
Cancel
Save