Merge branch 'master' of https://codefirst.iut.uca.fr/git/HyperSet/hyper-set
commit
37def9d023
@ -1,19 +1,72 @@
|
||||
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 tabShape = ['diamond','oval','wave','star','circle']
|
||||
const tabFilling = ['empty','stripped','full','pointed','squared'];
|
||||
const tabNumber = [1,2,3,4,5];
|
||||
const tabOutline = ['full','dotted ','aa','bb','cc'];
|
||||
let tabOfAllCards=[];
|
||||
for (let c=0; c<nbAttributes-1; c++){
|
||||
for (let n=0; n<nbAttributes-1; n++){
|
||||
for (let s=0; s<nbAttributes-1; s++){
|
||||
for (let f=0; f<nbAttributes-1; f++){
|
||||
if(nbAttributes==4){
|
||||
tabOfAllCards.push(new Card(tabColor[c],tabNumber[n],tabShape[s],tabFilling[f]));
|
||||
}
|
||||
else{
|
||||
for(let o=0;o<nbAttributes-1;o++){
|
||||
tabOfAllCards.push(new Card5(tabColor[c],tabNumber[n],tabShape[s],tabFilling[f],tabOutline[o]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return tabOfAllCards;
|
||||
}
|
||||
checkSet(selectedCards){
|
||||
if(true){//isSet(selectedCards)){
|
||||
selectedCards.forEach(e => {
|
||||
this.removeFromRemainingCards(e);
|
||||
});
|
||||
}
|
||||
}
|
||||
removeFromRemainingCards(selectedCards){
|
||||
let set=[];
|
||||
if (selectedCards instanceof Card) {
|
||||
for(let i=0; i<this.remainingCards.length;i++){
|
||||
let e = this.remainingCards[i]
|
||||
if(e.color==selectedCards.color||e.number==selectedCards.number||e.shape==selectedCards.shape||e.filling==selectedCards.filling){
|
||||
set.push[e];
|
||||
this.remainingCards.splice(i,1);
|
||||
}
|
||||
else{
|
||||
throw new UnFoundCard(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
class UnFoundCard extends Error(){
|
||||
constructor(card){
|
||||
super(`Card ${card.color, card.shape, card.number, card.filling} is missing`);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue