diff --git a/README.md b/README.md
index ede5d5c..5624f99 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,19 @@
# HyperSet
-## Description of the project
-
-2nd Year Project of IT BUT in Aubière
+## Notes
-## Subject
+- [Project subject](https://codefirst.iut.uca.fr/git/cedric.bouhours/Projets_SAE_S4/src/branch/master/Projets/Projet_11.md)
+- [Original project website](https://sancy.iut.uca.fr/~lafourcade/hyper-set-reda/HyperSet/)
+## Description of the project
-[link of the initial project](https://codefirst.iut.uca.fr/git/cedric.bouhours/Projets_SAE_S4/src/branch/master/Projets/Projet_11.md)
+null
-## Created by :
+## Project Convention
-LACOTE Raphaël JAULT Aurian ARNAL Rémi JACQUELIN Bastien
\ No newline at end of file
+- Functions names must be explicit, complete and follow **camelCase** naming
+- Variable follow **camelCase** naming convention
+- Opening brace must be at end of line
+- Directories names my_directory
+- Files names -> my_file.js
+- No useless comments
\ No newline at end of file
diff --git a/src/Console/Console.html b/src/Console/Console.html
index bc47ce5..1f6b5c3 100644
--- a/src/Console/Console.html
+++ b/src/Console/Console.html
@@ -14,6 +14,7 @@
+
diff --git a/src/Console/main.js b/src/Console/main.js
index 108635f..a349a7b 100644
--- a/src/Console/main.js
+++ b/src/Console/main.js
@@ -27,19 +27,44 @@ try {
}
console.groupEnd();
console.group('Deck');
-let deck = new Deck();
-console.log(`Output cards ${deck.outputCards}`);
+let deck = new Deck(4);
+
+console.log(`All cards with 4 attributes size ${deck.allCards.length}`);
+console.log(`size ${deck.outputCards.length}`);
+
+// deck.allCards.forEach(e => {
+// console.log(e.color,e.number,e.shape,e.filling);
+// });
+console.log(`Output cards`);
+deck.outputCards.forEach(e => {
+ console.log(e.color,e.number,e.shape,e.filling);
+});
console.log(`set already made ${deck.setMade}`);
-console.log(`All cards ${deck.allCards}`);
-console.log(`Remaining cards ${deck.remainingCards}`);
-console.groupEnd();
+deck.allCards.forEach(e => {
+ console.log(e.color,e.number,e.shape,e.filling);
+ });
+let customCard=[new Card('red',1,'diamond','stripped')];
+deck.checkSet(customCard);
+console.log(`deck size :${deck.allCards.length}`);
+deck.allCards.forEach(e => {
+ console.log(e.color,e.number,e.shape,e.filling);
+});
+console.log(`remaining cars:`);
+deck.setMade.forEach(e => {
+ console.log(e.color,e.number,e.shape,e.filling);
+ });
+
+let deck5 = new Deck(5)
+console.log(`All cards with 5 attributes size ${deck5.allCards.length}`);
+// deck5.allCards.forEach(e => {
+// console.log(e.color,e.number,e.shape,e.filling,e.outline);
+// });
+//console.log(`Remaining cards ${deck.remainingCards}`);
+//console.log(`random : ${deck.getRandCard()}`);
+
+
+
-console.group('Maths');
-let list=[];
-list.push(1);
-list.push(2);
-let gngn=Math.floor(Math.random() * list.length)
-console.log(gngn);
console.groupEnd();
diff --git a/src/Model/Card.js b/src/Model/Card.js
index d7da58b..0b8997b 100644
--- a/src/Model/Card.js
+++ b/src/Model/Card.js
@@ -29,5 +29,8 @@ class Card{
getAttributes(){
return [this.color,this.number,this.shape,this.filling];
}
+ equals(card){
+ return this.color===card.color && this.number===card.number && this.shape===card.shape && this.filling===card.filling;
+ }
}//export {Card}
\ No newline at end of file
diff --git a/src/Model/Card5.js b/src/Model/Card5.js
index b9d7894..bead780 100644
--- a/src/Model/Card5.js
+++ b/src/Model/Card5.js
@@ -21,5 +21,8 @@ class Card5 extends Card {
// return [this.color,this.number,this.shape,this.filling,this.outline];
return super.getAttributes().concat(this.outline);
}
+ equals(card){
+ return this.color===card.color && this.number===card.number && this.shape===card.shape && this.filling===card.filling && this.outline===card.outline ;
+ }
}
// export {Card5};
\ No newline at end of file
diff --git a/src/Model/Deck.js b/src/Model/Deck.js
index b38bd49..5be6949 100644
--- a/src/Model/Deck.js
+++ b/src/Model/Deck.js
@@ -1,19 +1,74 @@
class Deck{
- constructor(){
- this.outputCards=this.createDeck();
- this.setMade=[];
- this.allCards=this.createCards();
- this.remainingCards=this.allCards;
+ constructor(nbAttributes=4){
+ this.allCards=this.createCards(nbAttributes);// All the cards in the game
+ this.remainingCards=this.allCards;// cards in the stack
+ this.outputCards=[];// 12 cards lay on the table
+ this.setMade=[];// array with all the set already mades (array of set)
+ //this.createDeck();
}
createDeck(){
for (let i=0; i<12; i++){
-
+ const rand = this.getRandCard();
+ this.outputCards.push(this.remainingCards[rand]);
+ this.remainingCards.splice(rand,1);
}
}
getRandCard(){
- Math.floor(Math.random() * remainingCards.length);
+ const random = Math.floor(Math.random() * this.remainingCards.length);
+ return random;
}
- createCards(){
- return 456;
+ /**
+ *
+ * @param {*} nbAttributes : attributes of the card, by default = 4
+ * @returns all cards: 81 in case of 4 attributes and 1224
+ */
+ createCards(nbAttributes){
+ const tabColor = ['red','purple','green','blue','orange'];
+ const tabNumber = [1,2,3,4,5];
+ const tabShape = ['diamond','oval','wave','star','circle'];
+ const tabFilling = ['empty','stripped','full','pointed','squared'];
+ const tabOutline = ['full','dotted ','aa','bb','cc'];
+ let tabOfAllCards=[];
+ for (let c=0; c {
+ this.removeFromRemainingCards(e);
+ });
+ }
+ }
+ removeFromRemainingCards(selectedCards){//better check of card type more opti
+ let set=[];
+ for(let i=0; i