You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3387 lines
85 KiB
3387 lines
85 KiB
|
|
var Game = {
|
|
cards: [],
|
|
selected: [],
|
|
score: 0,
|
|
set: 0,
|
|
$board: $('[data-display="game-board"]'),
|
|
$score: $('[data-display="score"]'),
|
|
$nbSets: $('[data-display="nbSets"]'),
|
|
|
|
|
|
cards1 : [],
|
|
selected1: [],
|
|
score1: 0 ,
|
|
set1: 0,
|
|
$score1: $('[data-display="score1"]'),
|
|
$nbSets1: $('[data-display="nbSets1"]'),
|
|
$board1: $('[data-display="game-board1"]'),
|
|
|
|
cards2 : [],
|
|
selected2: [],
|
|
score2: 0 ,
|
|
set2: 0,
|
|
$score2: $('[data-display="score2"]'),
|
|
$nbSets2: $('[data-display="nbSets2"]'),
|
|
$board2: $('[data-display="game-board2"]'),
|
|
|
|
|
|
cards3 : [],
|
|
selected3: [],
|
|
score3: 0 ,
|
|
set3: 0,
|
|
$score3: $('[data-display="score3"]'),
|
|
$nbSets3: $('[data-display="nbSets3"]'),
|
|
$board3: $('[data-display="game-board3"]'),
|
|
|
|
|
|
cards4: [],
|
|
selected4 : [],
|
|
score4: 0,
|
|
set4: 0,
|
|
$score4: $('[data-display="score4"]'),
|
|
$nbSets4: $('[data-display="nbSets4"]'),
|
|
$board4: $('[data-display="game-board4"]'),
|
|
|
|
cards0: [],
|
|
selected0 : [],
|
|
score0: 0,
|
|
set0: 0,
|
|
$score0: $('[data-display="score0"]'),
|
|
$nbSets0: $('[data-display="nbSets0"]'),
|
|
$board0: $('[data-display="game-board0"]'),
|
|
|
|
cardsHS: [],
|
|
selectedHS : [],
|
|
scoreHS: 0,
|
|
setHS: 0,
|
|
$scoreHS: $('[data-display="scoreHS"]'),
|
|
$nbSetsHS: $('[data-display="nbSetsHS"]'),
|
|
$boardHS: $('[data-display="game-boardHS"]'),
|
|
|
|
cardsHS0: [],
|
|
selectedHS0 : [],
|
|
scoreHS0: 0,
|
|
setHS0: 0,
|
|
$scoreHS0: $('[data-display="scoreHS0"]'),
|
|
$nbSetsHS0: $('[data-display="nbSetsHS0"]'),
|
|
$boardHS0: $('[data-display="game-boardHS0"]'),
|
|
|
|
cardsHS1: [],
|
|
selectedHS1 : [],
|
|
scoreHS1: 0,
|
|
setHS1: 0,
|
|
$scoreHS1: $('[data-display="scoreHS1"]'),
|
|
$nbSetsHS1: $('[data-display="nbSetsHS1"]'),
|
|
$boardHS1: $('[data-display="game-boardHS1"]'),
|
|
|
|
cardsHS2: [],
|
|
selectedHS2 : [],
|
|
scoreHS2: 0,
|
|
setHS2: 0,
|
|
$scoreHS2: $('[data-display="scoreHS2"]'),
|
|
$nbSetsHS2: $('[data-display="nbSetsHS2"]'),
|
|
$boardHS2: $('[data-display="game-boardHS2"]'),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
deal: function() {
|
|
var self = this;
|
|
var dealRequest;
|
|
var dealRequest1;
|
|
var dealRequest2;
|
|
var dealRequest3;
|
|
var dealRequest4;
|
|
var dealRequest0;
|
|
|
|
var dealRequestHS;
|
|
var dealRequestHS0;
|
|
var dealRequestHS1;
|
|
var dealRequestHS2;
|
|
|
|
// ajax request to get initial set of cards
|
|
dealRequest = $.ajax({
|
|
url: 'set.php?action=deal',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function (data) {
|
|
self.cards = data;
|
|
self.existingSet();
|
|
self.displayCards.call(self);
|
|
self.setCardListeners();
|
|
//self.setPageListeners();
|
|
}
|
|
});
|
|
|
|
|
|
dealRequest1 = $.ajax({
|
|
url: 'set.php?action=deal1',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function (data) {
|
|
self.cards1 = data;
|
|
self.existingSet1();
|
|
self.displayCards1.call(self);
|
|
self.setCardListeners1();
|
|
//self.setPageListeners1();
|
|
|
|
}
|
|
});
|
|
|
|
dealRequest2 = $.ajax({
|
|
url: 'set.php?action=deal2',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function (data) {
|
|
self.cards2 = data;
|
|
self.displayCards2.call(self);
|
|
self.existingSet2();
|
|
self.setCardListeners2();
|
|
//self.setPageListeners2();
|
|
}
|
|
});
|
|
|
|
dealRequest3 = $.ajax({
|
|
url: 'set.php?action=deal3',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function (data) {
|
|
self.cards3 = data;
|
|
self.displayCards3.call(self);
|
|
//self.existingSet3();
|
|
self.setCardListeners3();
|
|
//self.setPageListeners3();
|
|
}
|
|
});
|
|
|
|
dealRequest4 = $.ajax({
|
|
url: 'set.php?action=deal4',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function (data) {
|
|
self.cards4 = data;
|
|
self.displayCards4.call(self);
|
|
//self.existingSet4();
|
|
self.setCardListeners4();
|
|
//self.setPageListeners4();
|
|
}
|
|
});
|
|
|
|
dealRequest0 = $.ajax({
|
|
url: 'set.php?action=deal0',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function (data) {
|
|
self.cards0 = data;
|
|
self.displayCards0.call(self);
|
|
self.existingSet0();
|
|
self.setCardListeners0();
|
|
//self.setPageListeners0();
|
|
}
|
|
});
|
|
|
|
|
|
dealRequestHS= $.ajax({
|
|
url: 'set.php?action=dealHS',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function (data) {
|
|
self.cardsHS = data;
|
|
self.displayCardsHS.call(self);
|
|
self.setCardListenersHS();
|
|
//self.setPageListenersHS();
|
|
}
|
|
});
|
|
|
|
dealRequestHS0= $.ajax({
|
|
url: 'set.php?action=dealHS0',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function (data) {
|
|
self.cardsHS0 = data;
|
|
self.displayCardsHS0.call(self);
|
|
self.setCardListenersHS0();
|
|
//self.setPageListenersHS0();
|
|
}
|
|
});
|
|
|
|
dealRequestHS1= $.ajax({
|
|
url: 'set.php?action=dealHS1',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function (data) {
|
|
self.cardsHS1 = data;
|
|
self.displayCardsHS1.call(self);
|
|
self.setCardListenersHS1();
|
|
//self.setPageListenersHS1();
|
|
}
|
|
});
|
|
dealRequestHS2= $.ajax({
|
|
url: 'set.php?action=dealHS2',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function (data) {
|
|
self.cardsHS2 = data;
|
|
self.displayCardsHS2.call(self);
|
|
self.setCardListenersHS2();
|
|
//self.setPageListenersHS2();
|
|
}
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
displayCards: function() {
|
|
var self = this;
|
|
if (self.cards.length == 0) {
|
|
return false;
|
|
}
|
|
|
|
|
|
$.each(self.cards, function(index, card){
|
|
var cardNode = $('<div>', {
|
|
class: "card"
|
|
}).appendTo(self.$board);
|
|
|
|
|
|
cardNode.data({
|
|
'id': card.id,
|
|
'shape': card.shape,
|
|
'fill': card.fill,
|
|
'color': card.color,
|
|
'number': card.number
|
|
});
|
|
|
|
var shapeNode = $("<canvas></canvas>");
|
|
shapeNode.addClass('shape ' + card.color + ' ' + card.shape + ' ' + card.fill);
|
|
|
|
for (var i = 0; i < card.number; i++) {
|
|
cardNode.append(shapeNode.clone());
|
|
}
|
|
self.$board.append(cardNode);
|
|
|
|
// display 4 cards per row
|
|
if ((index+1) % 4 === 0) {
|
|
self.$board.append($('<div>'));
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
displayCards1: function() {
|
|
var self = this;
|
|
if (self.cards1.length == 0) {
|
|
return false;
|
|
}
|
|
|
|
|
|
$.each(self.cards1, function(index, card){
|
|
var cardNode = $('<div>', {
|
|
class: "card"
|
|
}).appendTo(self.$board1);
|
|
|
|
|
|
cardNode.data({
|
|
'id': card.id,
|
|
'shape': card.shape,
|
|
'fill': card.fill,
|
|
'color': card.color,
|
|
'border': card.border,
|
|
'number': card.number
|
|
});
|
|
|
|
var shapeNode = $("<canvas></canvas>");
|
|
shapeNode.addClass('shape ' + card.color + ' ' + card.shape + ' ' + card.fill + ' ' + card.border);
|
|
|
|
for (var i = 0; i < card.number; i++) {
|
|
cardNode.append(shapeNode.clone());
|
|
}
|
|
self.$board1.append(cardNode);
|
|
|
|
// display 4 cards per row
|
|
if ((index+1) % 5 === 0) {
|
|
self.$board1.append($('<div>'));
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
displayCards2: function() {
|
|
var self = this;
|
|
if (self.cards2.length == 0) {
|
|
return false;
|
|
}
|
|
|
|
$.each(self.cards2, function(index, card){
|
|
var cardNode = $('<div>', {
|
|
class: "card"
|
|
}).appendTo(self.$board2);
|
|
|
|
|
|
cardNode.data({
|
|
'id': card.id,
|
|
'shape': card.shape,
|
|
'fill': card.fill,
|
|
'color': card.color,
|
|
'number': card.number
|
|
});
|
|
|
|
var shapeNode = $("<canvas></canvas>");
|
|
shapeNode.addClass('shape ' + card.color + ' ' + card.shape + ' ' + card.fill );
|
|
|
|
for (var i = 0; i < card.number; i++) {
|
|
cardNode.append(shapeNode.clone());
|
|
}
|
|
self.$board2.append(cardNode);
|
|
|
|
// display 4 cards per row
|
|
if ((index+1) % 5 === 0) {
|
|
self.$board2.append($('<div>'));
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
displayCards3: function() {
|
|
var self = this;
|
|
if (self.cards3.length == 0) {
|
|
return false;
|
|
}
|
|
|
|
$.each(self.cards3, function(index, card){
|
|
var cardNode = $('<div>', {
|
|
class: "card"
|
|
}).appendTo(self.$board3);
|
|
|
|
|
|
cardNode.data({
|
|
'id': card.id,
|
|
'shape': card.shape,
|
|
'fill': card.fill,
|
|
'color': card.color,
|
|
'border': card.border,
|
|
'number': card.number
|
|
});
|
|
|
|
var shapeNode = $("<canvas></canvas>");
|
|
shapeNode.addClass('shape ' + card.color + ' ' + card.shape + ' ' + card.fill + ' ' + card.border);
|
|
|
|
for (var i = 0; i < card.number; i++) {
|
|
cardNode.append(shapeNode.clone());
|
|
}
|
|
self.$board3.append(cardNode);
|
|
|
|
// display 4 cards per row
|
|
if ((index+1) % 4 === 0) {
|
|
self.$board3.append($('<div>'));
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
displayCards4: function() {
|
|
var self = this;
|
|
if (self.cards4.length == 0) {
|
|
return false;
|
|
}
|
|
|
|
|
|
$.each(self.cards4, function(index, card){
|
|
var cardNode = $('<div>', {
|
|
class: "card"
|
|
}).appendTo(self.$board4);
|
|
|
|
|
|
cardNode.data({
|
|
'id': card.id,
|
|
'shape': card.shape,
|
|
'fill': card.fill,
|
|
'color': card.color,
|
|
'border': card.border,
|
|
'number': card.number
|
|
});
|
|
|
|
var shapeNode = $("<canvas></canvas>");
|
|
shapeNode.addClass('shape ' + card.color + ' ' + card.shape + ' ' + card.fill + ' ' + card.border);
|
|
|
|
for (var i = 0; i < card.number; i++) {
|
|
cardNode.append(shapeNode.clone());
|
|
}
|
|
self.$board4.append(cardNode);
|
|
|
|
// display 4 cards per row
|
|
if ((index+1) % 4 === 0) {
|
|
self.$board4.append($('<div>'));
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
displayCards0: function() {
|
|
var self = this;
|
|
if (self.cards0.length == 0) {
|
|
return false;
|
|
}
|
|
|
|
|
|
$.each(self.cards0, function(index, card){
|
|
var cardNode = $('<div>', {
|
|
class: "card"
|
|
}).appendTo(self.$board0);
|
|
|
|
|
|
cardNode.data({
|
|
'id': card.id,
|
|
'shape': card.shape,
|
|
'fill': card.fill,
|
|
'color': card.color,
|
|
'number': card.number
|
|
});
|
|
|
|
var shapeNode = $("<canvas></canvas>");
|
|
shapeNode.addClass('shape ' + card.color + ' ' + card.shape + ' ' + card.fill);
|
|
|
|
for (var i = 0; i < card.number; i++) {
|
|
cardNode.append(shapeNode.clone());
|
|
}
|
|
self.$board0.append(cardNode);
|
|
|
|
// display 4 cards per row
|
|
if ((index+1) % 3 === 0) {
|
|
self.$board0.append($('<div>'));
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
displayCardsHS: function() {
|
|
var self = this;
|
|
if (self.cardsHS.length == 0) {
|
|
return false;
|
|
}
|
|
|
|
|
|
$.each(self.cardsHS, function(index, card){
|
|
var cardNode = $('<div>', {
|
|
class: "card"
|
|
}).appendTo(self.$boardHS);
|
|
|
|
|
|
cardNode.data({
|
|
'id': card.id,
|
|
'shape': card.shape,
|
|
'fill': card.fill,
|
|
'color': card.color,
|
|
'number': card.number
|
|
});
|
|
|
|
var shapeNode = $("<canvas></canvas>");
|
|
shapeNode.addClass('shape ' + card.color + ' ' + card.shape + ' ' + card.fill);
|
|
|
|
for (var i = 0; i < card.number; i++) {
|
|
cardNode.append(shapeNode.clone());
|
|
}
|
|
self.$boardHS.append(cardNode);
|
|
|
|
// display 4 cards per row
|
|
if ((index+1) % 4 === 0) {
|
|
self.$boardHS.append($('<div>'));
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
displayCardsHS0: function() {
|
|
var self = this;
|
|
if (self.cardsHS0.length == 0) {
|
|
return false;
|
|
}
|
|
|
|
|
|
$.each(self.cardsHS0, function(index, card){
|
|
var cardNode = $('<div>', {
|
|
class: "card"
|
|
}).appendTo(self.$boardHS0);
|
|
|
|
|
|
cardNode.data({
|
|
'id': card.id,
|
|
'shape': card.shape,
|
|
'fill': card.fill,
|
|
'color': card.color,
|
|
'number': card.number
|
|
});
|
|
|
|
var shapeNode = $("<canvas></canvas>");
|
|
shapeNode.addClass('shape ' + card.color + ' ' + card.shape + ' ' + card.fill);
|
|
|
|
for (var i = 0; i < card.number; i++) {
|
|
cardNode.append(shapeNode.clone());
|
|
}
|
|
self.$boardHS0.append(cardNode);
|
|
|
|
// display 4 cards per row
|
|
if ((index+1) % 4 === 0) {
|
|
self.$boardHS0.append($('<div>'));
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
displayCardsHS1: function() {
|
|
var self = this;
|
|
if (self.cardsHS1.length == 0) {
|
|
return false;
|
|
}
|
|
|
|
|
|
$.each(self.cardsHS1, function(index, card){
|
|
var cardNode = $('<div>', {
|
|
class: "card"
|
|
}).appendTo(self.$boardHS1);
|
|
|
|
|
|
cardNode.data({
|
|
'id': card.id,
|
|
'shape': card.shape,
|
|
'fill': card.fill,
|
|
'color': card.color,
|
|
'border': card.border,
|
|
'number': card.number
|
|
});
|
|
|
|
var shapeNode = $("<canvas></canvas>");
|
|
shapeNode.addClass('shape ' + card.color + ' ' + card.shape + ' ' + card.fill + ' '+ card.border);
|
|
|
|
for (var i = 0; i < card.number; i++) {
|
|
cardNode.append(shapeNode.clone());
|
|
}
|
|
self.$boardHS1.append(cardNode);
|
|
|
|
// display 4 cards per row
|
|
if ((index+1) % 5 === 0) {
|
|
self.$boardHS1.append($('<div>'));
|
|
}
|
|
|
|
});
|
|
},
|
|
|
|
displayCardsHS2: function() {
|
|
var self = this;
|
|
if (self.cardsHS2.length == 0) {
|
|
return false;
|
|
}
|
|
|
|
|
|
$.each(self.cardsHS2, function(index, card){
|
|
var cardNode = $('<div>', {
|
|
class: "card"
|
|
}).appendTo(self.$boardHS2);
|
|
|
|
|
|
cardNode.data({
|
|
'id': card.id,
|
|
'shape': card.shape,
|
|
'fill': card.fill,
|
|
'color': card.color,
|
|
'number': card.number
|
|
});
|
|
|
|
var shapeNode = $("<canvas></canvas>");
|
|
shapeNode.addClass('shape ' + card.color + ' ' + card.shape + ' ' + card.fill);
|
|
|
|
for (var i = 0; i < card.number; i++) {
|
|
cardNode.append(shapeNode.clone());
|
|
}
|
|
self.$boardHS2.append(cardNode);
|
|
|
|
// display 4 cards per row
|
|
if ((index+1) % 5 === 0) {
|
|
self.$boardHS2.append($('<div>'));
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
// PARLER SUR CET ALGO SUR LE RAPPORT
|
|
|
|
|
|
/*existingSet: function() {
|
|
var colors = [];
|
|
var shapes =[];
|
|
var fills= [];
|
|
var numbers= [];
|
|
var valid;
|
|
var self = this;
|
|
var cartes = self.cards;
|
|
var cartes1 = cartes;
|
|
var cartes2 = cartes;
|
|
var cpt=0;
|
|
|
|
|
|
var carte1;
|
|
var carte2;
|
|
var carte3;
|
|
|
|
var i, j, k;
|
|
|
|
|
|
|
|
for(i=0; i<cartes.length-2; i++) {
|
|
for (j = i+1; j < cartes1.length-1; j++) {
|
|
for (k = j+1; k < cartes2.length; k++) {
|
|
carte1 = cartes[i];
|
|
carte2 = cartes1[j];
|
|
carte3 = cartes2[k];
|
|
|
|
colors.splice(0,1,carte1.color);
|
|
colors.splice(1,1,carte2.color);
|
|
colors.splice(2,1,carte3.color);
|
|
|
|
shapes.splice(0,1,carte1.shape);
|
|
shapes.splice(1,1,carte2.shape);
|
|
shapes.splice(2,1,carte3.shape);
|
|
|
|
fills.splice(0,1,carte1.fill);
|
|
fills.splice(1,1,carte2.fill);
|
|
fills.splice(2,1,carte3.fill);
|
|
|
|
numbers.splice(0,1,carte1.number);
|
|
numbers.splice(1,1,carte2.number);
|
|
numbers.splice(2,1,carte3.number);
|
|
|
|
|
|
valid = self.isSet(colors) && self.isSet(shapes) && self.isSet(fills) && self.isSet(numbers);
|
|
|
|
if (valid) {
|
|
self.set = self.set + 1;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
this.$nbSets.html(self.set);
|
|
},*/
|
|
|
|
existingSet: function() {
|
|
var colors1 = [];
|
|
var shapes1 =[];
|
|
var fills1= [];
|
|
var numbers1= [];
|
|
var self = this;
|
|
var cartes = self.cards;
|
|
var cartes1 = cartes;
|
|
|
|
|
|
var carte1;
|
|
var carte2;
|
|
|
|
var card3 = [];
|
|
|
|
var tCards =[];
|
|
|
|
|
|
|
|
var i, j, a;
|
|
|
|
var colorsall= $.map(this.cards, function(el) { return el.color;});
|
|
var shapesall = $.map(this.cards, function(el) { return el.shape; });
|
|
var fillsall= $.map(this.cards,function(el) { return el.fill; });
|
|
var numbersall = $.map(this.cards, function(el) { return el.number;});
|
|
|
|
|
|
for(i=0; i<cartes.length; i++) {
|
|
for (j = i+1; j < cartes1.length; j++) {
|
|
|
|
carte1 = cartes[i];
|
|
carte2 = cartes1[j];
|
|
|
|
tCards[0] = carte1;
|
|
tCards[1]= carte2;
|
|
|
|
card3 = this.generateVirtualCard34(tCards);
|
|
|
|
colors1.splice(0,1,carte1.color);
|
|
colors1.splice(1,1,carte2.color);
|
|
colors1.splice(2, 1, card3[0].color);
|
|
|
|
shapes1.splice(0,1,carte1.shape);
|
|
shapes1.splice(1,1,carte2.shape);
|
|
shapes1.splice(2, 1, card3[0].shape);
|
|
|
|
|
|
fills1.splice(0,1,carte1.fill);
|
|
fills1.splice(1,1,carte2.fill);
|
|
fills1.splice(2, 1, card3[0].fill);
|
|
|
|
numbers1.splice(0,1,carte1.number);
|
|
numbers1.splice(1,1,carte2.number);
|
|
numbers1.splice(2, 1, card3[0].number);
|
|
|
|
|
|
|
|
for (a = j+1; a<this.cards.length; a++) {
|
|
if (shapes1[2] !== undefined && colors1[2] !== undefined && fills1[2] !== undefined && numbers1[2] !== undefined) {
|
|
if (shapes1[2] === shapesall[a] && colors1[2] === colorsall[a] && fills1[2] === fillsall[a] && numbers1[2] === numbersall[a]) {
|
|
if (this.isSet(shapes1) && this.isSet(colors1) && this.isSet(fills1) && this.isSet(numbers1)) {
|
|
self.set = self.set + 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
this.$nbSets.html(self.set);
|
|
},
|
|
|
|
existingSet0: function() {
|
|
var colors1 = [];
|
|
var shapes1 =[];
|
|
var numbers1= [];
|
|
var self = this;
|
|
var cartes = self.cards0;
|
|
var cartes1 = cartes;
|
|
|
|
|
|
var carte1;
|
|
var carte2;
|
|
var card3 = [];
|
|
|
|
var tCards = [];
|
|
|
|
|
|
var i, j, a;
|
|
|
|
var colorsall= $.map(this.cards0, function(el) { return el.color;});
|
|
var shapesall = $.map(this.cards0, function(el) { return el.shape; });
|
|
var numbersall = $.map(this.cards0, function(el) { return el.number;});
|
|
|
|
|
|
for(i=0; i<cartes.length-1; i++) {
|
|
for (j = i+1; j < cartes1.length; j++) {
|
|
|
|
carte1 = cartes[i];
|
|
carte2 = cartes1[j];
|
|
|
|
tCards[0] = carte1;
|
|
tCards[1]= carte2;
|
|
|
|
card3 = this.generateVirtualCard33(tCards);
|
|
|
|
colors1.splice(0,1,carte1.color);
|
|
colors1.splice(1,1,carte2.color);
|
|
colors1.splice(2, 1, card3[0].color);
|
|
|
|
shapes1.splice(0,1,carte1.shape);
|
|
shapes1.splice(1,1,carte2.shape);
|
|
shapes1.splice(2, 1, card3[0].shape);
|
|
|
|
numbers1.splice(0,1,carte1.number);
|
|
numbers1.splice(1,1,carte2.number);
|
|
numbers1.splice(2, 1, card3[0].number);
|
|
|
|
|
|
|
|
for (a = j+1; a<this.cards0.length; a++) {
|
|
if (shapes1[2] !== undefined && colors1[2] !== undefined && numbers1[2] !== undefined) {
|
|
if (shapes1[2] === shapesall[a] && colors1[2] === colorsall[a] && numbers1[2] === numbersall[a]) {
|
|
if (this.isSet(shapes1) && this.isSet(colors1) && this.isSet(numbers1)) {
|
|
self.set0 = self.set0 + 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.$nbSets0.html(self.set0);
|
|
},
|
|
|
|
existingSet1: function() {
|
|
var colors1 = [];
|
|
var shapes1 =[];
|
|
var fills1= [];
|
|
var borders1= [];
|
|
var numbers1= [];
|
|
var self = this;
|
|
var cartes = self.cards1;
|
|
var cartes1 = cartes;
|
|
|
|
|
|
var carte1, card3;
|
|
var carte2;
|
|
var tCards =[];
|
|
|
|
var i, j, a;
|
|
|
|
var colorsall= $.map(this.cards1, function(el) { return el.color;});
|
|
var shapesall = $.map(this.cards1, function(el) { return el.shape; });
|
|
var fillsall= $.map(this.cards1,function(el) { return el.fill; });
|
|
var bordersall= $.map(this.cards1,function(el) { return el.border; });
|
|
var numbersall = $.map(this.cards1, function(el) { return el.number;});
|
|
|
|
|
|
for(i=0; i<cartes.length-1; i++) {
|
|
for (j = i+1; j < cartes1.length; j++) {
|
|
|
|
carte1 = cartes[i];
|
|
carte2 = cartes1[j];
|
|
|
|
tCards[0] = carte1;
|
|
tCards[1]= carte2;
|
|
|
|
card3 = this.generateVirtualCard35(tCards);
|
|
|
|
colors1.splice(0,1,carte1.color);
|
|
colors1.splice(1,1,carte2.color);
|
|
colors1.splice(2, 1, card3[0].color);
|
|
|
|
shapes1.splice(0,1,carte1.shape);
|
|
shapes1.splice(1,1,carte2.shape);
|
|
shapes1.splice(2, 1, card3[0].shape);
|
|
|
|
|
|
fills1.splice(0,1,carte1.fill);
|
|
fills1.splice(1,1,carte2.fill);
|
|
fills1.splice(2, 1, card3[0].fill);
|
|
|
|
borders1.splice(0,1,carte1.border);
|
|
borders1.splice(1,1,carte2.border);
|
|
borders1.splice(2, 1, card3[0].border);
|
|
|
|
numbers1.splice(0,1,carte1.number);
|
|
numbers1.splice(1,1,carte2.number);
|
|
numbers1.splice(2, 1, card3[0].number);
|
|
|
|
|
|
for (a = j+1; a<this.cards1.length; a++) {
|
|
if (shapes1[2] !== undefined && colors1[2] !== undefined && fills1[2] !== undefined && numbers1[2] !== undefined && borders1[2] !== undefined) {
|
|
if (shapes1[2] === shapesall[a] && colors1[2] === colorsall[a] && fills1[2] === fillsall[a] && borders1[2] === bordersall[a] && numbers1[2] === numbersall[a]) {
|
|
if (this.isSet(shapes1) && this.isSet(colors1) && this.isSet(fills1) && this.isSet(borders1) && this.isSet(numbers1)) {
|
|
self.set1 = self.set1 + 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.$nbSets1.html(self.set1);
|
|
},
|
|
|
|
|
|
existingSet2: function() {
|
|
var colors1 = [];
|
|
var shapes1 =[];
|
|
var fills1= [];
|
|
var numbers1= [];
|
|
var self = this;
|
|
var cartes = self.cards2;
|
|
var cartes1 = cartes;
|
|
var cartes2 = cartes;
|
|
|
|
|
|
var carte1, carte3;
|
|
var carte2;
|
|
var card4 = [];
|
|
var tCards = [];
|
|
|
|
|
|
var i, j, a, k;
|
|
|
|
var colorsall= $.map(this.cards2, function(el) { return el.color;});
|
|
var shapesall = $.map(this.cards2, function(el) { return el.shape; });
|
|
var fillsall= $.map(this.cards2,function(el) { return el.fill; });
|
|
var numbersall = $.map(this.cards2, function(el) { return el.number;});
|
|
|
|
|
|
for(i=0; i < cartes.length-2; i++) {
|
|
for (j = i + 1; j < cartes1.length - 1; j++) {
|
|
for (k = j + 1; k < cartes2.length; k++) {
|
|
|
|
carte1 = cartes[i];
|
|
carte2 = cartes1[j];
|
|
carte3 = cartes2[k];
|
|
|
|
tCards[0] = carte1;
|
|
tCards[1]= carte2;
|
|
tCards[2]= carte3;
|
|
|
|
|
|
card4 = this.generateVirtualCard44(tCards);
|
|
|
|
colors1.splice(0,1,carte1.color);
|
|
colors1.splice(1,1,carte2.color);
|
|
colors1.splice(2,1,carte3.color);
|
|
colors1.splice(3, 1, card4[0].color);
|
|
|
|
shapes1.splice(0,1,carte1.shape);
|
|
shapes1.splice(1,1,carte2.shape);
|
|
shapes1.splice(2,1,carte3.shape);
|
|
shapes1.splice(3, 1, card4[0].shape);
|
|
|
|
|
|
fills1.splice(0,1,carte1.fill);
|
|
fills1.splice(1,1,carte2.fill);
|
|
fills1.splice(2,1,carte3.color);
|
|
fills1.splice(3, 1, card4[0].fill);
|
|
|
|
numbers1.splice(0,1,carte1.number);
|
|
numbers1.splice(1,1,carte2.number);
|
|
numbers1.splice(2,1,carte3.color);
|
|
numbers1.splice(3, 1, card4[0].number);
|
|
|
|
|
|
|
|
//if(this.cardInListOfCards44(shapes1[3],colors1[3],fills1[3],numbers1[3] )){}
|
|
|
|
for (a = k+1; a < self.cards2.length; a++) {
|
|
if (shapes1[3] !== undefined && colors1[3] !== undefined && fills1[3] !== undefined && numbers1[3] !== undefined) {
|
|
if (shapes1[3] === shapesall[a] && colors1[3] === colorsall[a] && fills1[3] === fillsall[a] && numbers1[3] === numbersall[a]) {
|
|
if (this.isSet4(shapes1) && this.isSet4(colors1) && this.isSet4(fills1) && this.isSet4(numbers1)) {
|
|
console.log('Set 4x4 : ');
|
|
console.log(shapes1, colors1, fills1, numbers1);
|
|
self.set2 = self.set2 + 1;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
console.log('-----------------------------------------------------------------');
|
|
|
|
this.$nbSets2.html(self.set2);
|
|
},
|
|
|
|
|
|
|
|
|
|
/*
|
|
cardInListOfCards44 : function (shapes, colors, fills, numbers){
|
|
var colorsall= $.map(this.cards2, function(el) { return el.color;});
|
|
var shapesall = $.map(this.cards2, function(el) { return el.shape; });
|
|
var fillsall= $.map(this.cards2,function(el) { return el.fill; });
|
|
var numbersall = $.map(this.cards2, function(el) { return el.number;});
|
|
|
|
var a = 0;
|
|
|
|
for (a =0; a < this.cards2.length; a++) {
|
|
return shapes === shapesall[a] && colors === colorsall[a] && fills === fillsall[a] && numbers === numbersall[a];
|
|
}
|
|
|
|
},
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setCardListeners0: function() {
|
|
var self = this;
|
|
|
|
// what happens when a card is clicked:
|
|
this.$board0.on('click', '.card', function(e) {
|
|
e.stopImmediatePropagation();
|
|
var card = e.currentTarget;
|
|
|
|
// if card is new, add it, otherwise remove it
|
|
var ids = $.map(self.selected0, function(el) { return $(el).data("id");});
|
|
if (ids.indexOf($(card).data('id')) >= 0) {
|
|
self.deselectCard(self.selected0,card);
|
|
} else {
|
|
self.selectCard3(self.selected0,card);
|
|
}
|
|
|
|
if (self.selected0.length === 3) {
|
|
self.silentSubmission0();
|
|
}
|
|
});
|
|
},
|
|
|
|
setCardListeners: function() {
|
|
var self = this;
|
|
|
|
// what happens when a card is clicked:
|
|
this.$board.on('click', '.card', function(e) {
|
|
e.stopImmediatePropagation();
|
|
var card = e.currentTarget;
|
|
|
|
// if card is new, add it, otherwise remove it
|
|
var ids = $.map(self.selected, function(el) { return $(el).data("id");});
|
|
if (ids.indexOf($(card).data('id')) >= 0) {
|
|
self.deselectCard(self.selected,card);
|
|
} else {
|
|
self.selectCard3(self.selected,card);
|
|
}
|
|
|
|
if (self.selected.length === 3) {
|
|
self.silentSubmission();
|
|
}
|
|
});
|
|
},
|
|
|
|
setCardListeners1: function() {
|
|
var self = this;
|
|
|
|
// what happens when a card is clicked:
|
|
this.$board1.on('click', '.card', function(e) {
|
|
e.stopImmediatePropagation();
|
|
var card = e.currentTarget;
|
|
|
|
// if card is new, add it, otherwise remove it
|
|
var ids = $.map(self.selected1, function(el) { return $(el).data("id");});
|
|
if (ids.indexOf($(card).data('id')) >= 0) {
|
|
self.deselectCard(self.selected1,card);
|
|
} else {
|
|
self.selectCard3(self.selected1,card);
|
|
}
|
|
|
|
if (self.selected1.length === 3) {
|
|
self.silentSubmission1();
|
|
}
|
|
});
|
|
},
|
|
setCardListeners2: function() {
|
|
var self = this;
|
|
|
|
// what happens when a card is clicked:
|
|
this.$board2.on('click', '.card', function(e) {
|
|
e.stopImmediatePropagation();
|
|
var card = e.currentTarget;
|
|
|
|
// if card is new, add it, otherwise remove it
|
|
var ids = $.map(self.selected2, function(el) { return $(el).data("id");});
|
|
if (ids.indexOf($(card).data('id')) >= 0) {
|
|
self.deselectCard(self.selected2,card);
|
|
} else {
|
|
self.selectCard4(self.selected2,card);
|
|
}
|
|
|
|
if (self.selected2.length === 4) {
|
|
self.silentSubmission2();
|
|
}
|
|
});
|
|
},
|
|
setCardListeners3: function() {
|
|
var self = this;
|
|
|
|
// what happens when a card is clicked:
|
|
this.$board3.on('click', '.card', function(e) {
|
|
e.stopImmediatePropagation();
|
|
var card = e.currentTarget;
|
|
|
|
// if card is new, add it, otherwise remove it
|
|
var ids = $.map(self.selected3, function(el) { return $(el).data("id");});
|
|
if (ids.indexOf($(card).data('id')) >= 0) {
|
|
self.deselectCard(self.selected3,card);
|
|
} else {
|
|
self.selectCard4(self.selected3,card);
|
|
}
|
|
|
|
if (self.selected3.length === 4) {
|
|
self.silentSubmission3();
|
|
}
|
|
});
|
|
},
|
|
setCardListeners4: function() {
|
|
var self = this;
|
|
|
|
// what happens when a card is clicked:
|
|
this.$board4.on('click', '.card', function(e) {
|
|
e.stopImmediatePropagation();
|
|
var card = e.currentTarget;
|
|
|
|
// if card is new, add it, otherwise remove it
|
|
var ids = $.map(self.selected4, function(el) { return $(el).data("id");});
|
|
if (ids.indexOf($(card).data('id')) >= 0) {
|
|
self.deselectCard(self.selected4,card);
|
|
} else {
|
|
self.selectCard5(self.selected4,card);
|
|
}
|
|
|
|
if (self.selected4.length === 5) {
|
|
self.silentSubmission4();
|
|
}
|
|
});
|
|
},
|
|
|
|
setCardListenersHS: function() {
|
|
var self = this;
|
|
|
|
// what happens when a card is clicked:
|
|
this.$boardHS.on('click', '.card', function(e) {
|
|
e.stopImmediatePropagation();
|
|
var card = e.currentTarget;
|
|
|
|
// if card is new, add it, otherwise remove it
|
|
var ids = $.map(self.selectedHS, function(el) { return $(el).data("id");});
|
|
if (ids.indexOf($(card).data('id')) >= 0) {
|
|
self.deselectCard(self.selectedHS,card);
|
|
} else {
|
|
self.selectCard4(self.selectedHS,card);
|
|
}
|
|
|
|
if (self.selectedHS.length === 4) {
|
|
self.silentSubmissionHS();
|
|
}
|
|
});
|
|
},
|
|
|
|
setCardListenersHS0: function() {
|
|
var self = this;
|
|
|
|
// what happens when a card is clicked:
|
|
this.$boardHS0.on('click', '.card', function(e) {
|
|
e.stopImmediatePropagation();
|
|
var card = e.currentTarget;
|
|
|
|
// if card is new, add it, otherwise remove it
|
|
var ids = $.map(self.selectedHS0, function(el) { return $(el).data("id");});
|
|
if (ids.indexOf($(card).data('id')) >= 0) {
|
|
self.deselectCard(self.selectedHS0,card);
|
|
} else {
|
|
self.selectCard4(self.selectedHS0,card);
|
|
}
|
|
|
|
if (self.selectedHS0.length === 4) {
|
|
self.silentSubmissionHS0();
|
|
}
|
|
});
|
|
},
|
|
|
|
|
|
setCardListenersHS1: function() {
|
|
var self = this;
|
|
|
|
// what happens when a card is clicked:
|
|
this.$boardHS1.on('click', '.card', function(e) {
|
|
e.stopImmediatePropagation();
|
|
var card = e.currentTarget;
|
|
|
|
// if card is new, add it, otherwise remove it
|
|
var ids = $.map(self.selectedHS1, function(el) { return $(el).data("id");});
|
|
if (ids.indexOf($(card).data('id')) >= 0) {
|
|
self.deselectCard(self.selectedHS1,card);
|
|
} else {
|
|
self.selectCard4(self.selectedHS1,card);
|
|
}
|
|
|
|
if (self.selectedHS1.length === 4) {
|
|
self.silentSubmissionHS1();
|
|
}
|
|
});
|
|
},
|
|
setCardListenersHS2: function() {
|
|
var self = this;
|
|
|
|
// what happens when a card is clicked:
|
|
this.$boardHS2.on('click', '.card', function(e) {
|
|
e.stopImmediatePropagation();
|
|
var card = e.currentTarget;
|
|
|
|
// if card is new, add it, otherwise remove it
|
|
var ids = $.map(self.selectedHS2, function(el) { return $(el).data("id");});
|
|
if (ids.indexOf($(card).data('id')) >= 0) {
|
|
self.deselectCard(self.selectedHS2,card);
|
|
} else {
|
|
self.selectCard6(self.selectedHS2,card);
|
|
}
|
|
|
|
if (self.selectedHS2.length === 6) {
|
|
self.silentSubmissionHS2();
|
|
}
|
|
});
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
selectCard3: function(selectedCard, card) {
|
|
if (selectedCard.length < 3) {
|
|
$(card).addClass('selected');
|
|
selectedCard.push(card);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
selectCard4: function(selectedCard, card) {
|
|
if (selectedCard.length < 4) {
|
|
$(card).addClass('selected');
|
|
selectedCard.push(card);
|
|
|
|
}
|
|
|
|
},
|
|
selectCard5: function(selectedCard, card) {
|
|
if (selectedCard.length < 5) {
|
|
$(card).addClass('selected');
|
|
selectedCard.push(card);
|
|
|
|
}
|
|
|
|
},
|
|
selectCard6: function(selectedCard, card) {
|
|
if (selectedCard.length < 6) {
|
|
$(card).addClass('selected');
|
|
selectedCard.push(card);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
deselectCard: function(selectedCards,card) {
|
|
|
|
var index = selectedCards.indexOf(card);
|
|
if (index > -1) {
|
|
selectedCards.splice(index, 1);
|
|
}
|
|
$(card).removeClass('selected');
|
|
},
|
|
|
|
|
|
clearSelections: function(selectedCards) {
|
|
$.each(selectedCards, function(index, card) {
|
|
$(card).removeClass('selected');
|
|
});
|
|
selectedCards = [];
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
generateVirtualCard34: function(cards1){
|
|
|
|
var colors2= $.map(cards1, function(el) { return $(el).data("color");});
|
|
var shapes2 = $.map(cards1, function(el) { return $(el).data("shape");});
|
|
var fills2 = $.map(cards1, function(el) { return $(el).data("fill");});
|
|
var numbers2 = $.map(cards1, function(el) { return $(el).data("number");});
|
|
|
|
if (shapes2[0] === undefined && colors2[0] === undefined && fills2[0] === undefined && numbers2[0] === undefined) {
|
|
colors2= $.map(cards1, function(el) { return el.color;});
|
|
shapes2 = $.map(cards1, function(el) { return el.shape;});
|
|
fills2 = $.map(cards1, function(el) { return el.fill;});
|
|
numbers2 = $.map(cards1, function(el) { return el.number;});
|
|
}
|
|
|
|
|
|
if(colors2[0] === colors2 [1]){
|
|
colors2.push(colors2[0]);
|
|
}
|
|
else{
|
|
if(colors2[0] === 'red' && colors2[1] === 'green'){
|
|
colors2.push('purple');
|
|
}
|
|
|
|
if(colors2[0] === 'red' && colors2[1] === 'purple'){
|
|
colors2.push('green');
|
|
}
|
|
|
|
if(colors2[0] === 'green' && colors2[1] === 'purple'){
|
|
colors2.push('red');
|
|
}
|
|
if(colors2[0] === 'green' && colors2[1] === 'red'){
|
|
colors2.push('purple');
|
|
}
|
|
|
|
if(colors2[0] === 'purple' && colors2[1] === 'red'){
|
|
colors2.push('green');
|
|
}
|
|
if(colors2[0] === 'purple' && colors2[1] === 'green'){
|
|
colors2.push('red');
|
|
}
|
|
|
|
}
|
|
if(shapes2[0] === shapes2 [1]){
|
|
shapes2.push(shapes2[0]);
|
|
}
|
|
else{
|
|
if(shapes2[0] === 'oval' && shapes2[1] === 'diamond'){
|
|
shapes2.push('wave');
|
|
}
|
|
|
|
if(shapes2[0] === 'oval' && shapes2[1] === 'wave'){
|
|
shapes2.push('diamond');
|
|
}
|
|
|
|
if(shapes2[0] === 'diamond' && shapes2[1] === 'oval'){
|
|
shapes2.push('wave');
|
|
|
|
}
|
|
if(shapes2[0] === 'diamond' && shapes2[1] === 'wave'){
|
|
shapes2.push('oval');
|
|
}
|
|
|
|
if(shapes2[0] === 'wave' && shapes2[1] === 'diamond'){
|
|
shapes2.push('oval');
|
|
}
|
|
if(shapes2[0] === 'wave' && shapes2[1] === 'oval'){
|
|
shapes2.push('diamond');
|
|
}
|
|
}
|
|
if(fills2[0] === fills2 [1]){
|
|
fills2.push(fills2[0]);
|
|
}
|
|
else{
|
|
if(fills2[0] === 'solid' && fills2[1] === 'stripped'){
|
|
fills2.push('open');
|
|
}
|
|
|
|
if(fills2[0] === 'solid' && fills2[1] === 'open'){
|
|
fills2.push('stripped');
|
|
}
|
|
|
|
if(fills2[0] === 'stripped' && fills2[1] === 'open'){
|
|
fills2.push('solid');
|
|
}
|
|
if(fills2[0] === 'open' && fills2[1] === 'stripped'){
|
|
fills2.push('solid');
|
|
}
|
|
|
|
if(fills2[0] === 'stripped' && fills2[1] === 'solid'){
|
|
fills2.push('open');
|
|
}
|
|
if(fills2[0] === 'open' && fills2[1] === 'solid'){
|
|
fills2.push('stripped');
|
|
}
|
|
}
|
|
if(numbers2[0] === numbers2[1]){
|
|
numbers2.push(numbers2[0]);
|
|
}
|
|
else{
|
|
if(numbers2[0] === 1 && numbers2[1] === 2){
|
|
numbers2.push(3);
|
|
}
|
|
|
|
if(numbers2[0] === 1 && numbers2[1] === 3){
|
|
numbers2.push(2);
|
|
}
|
|
|
|
if(numbers2[0] === 2 && numbers2[1] === 1){
|
|
numbers2.push(3);
|
|
}
|
|
if(numbers2[0] === 2 && numbers2[1] === 3){
|
|
numbers2.push(1);
|
|
}
|
|
|
|
if(numbers2[0] === 3 && numbers2[1] === 1){
|
|
numbers2.push(2);
|
|
}
|
|
if(numbers2[0] === 3 && numbers2[1] === 2){
|
|
numbers2.push(1);
|
|
}
|
|
|
|
}
|
|
|
|
var cards4 = [];
|
|
|
|
cards4.push({
|
|
shape: shapes2[2],
|
|
fill: fills2[2],
|
|
color: colors2[2],
|
|
number: numbers2[2]
|
|
});
|
|
|
|
return cards4;
|
|
},
|
|
|
|
|
|
generateVirtualCard33: function(cards1){
|
|
var colors2= $.map(cards1, function(el) { return $(el).data("color");});
|
|
var shapes2 = $.map(cards1, function(el) { return $(el).data("shape");});
|
|
var numbers2 = $.map(cards1, function(el) { return $(el).data("number");});
|
|
|
|
if (shapes2[0] === undefined && colors2[0] === undefined && numbers2[0] === undefined) {
|
|
colors2= $.map(cards1, function(el) { return el.color;});
|
|
shapes2 = $.map(cards1, function(el) { return el.shape;});
|
|
numbers2 = $.map(cards1, function(el) { return el.number;});
|
|
}
|
|
|
|
|
|
if(colors2[0] === colors2 [1]){
|
|
colors2.push(colors2[0]);
|
|
}
|
|
else{
|
|
if(colors2[0] === 'red' && colors2[1] === 'green'){
|
|
colors2.push('purple');
|
|
}
|
|
|
|
if(colors2[0] === 'red' && colors2[1] === 'purple'){
|
|
colors2.push('green');
|
|
}
|
|
|
|
if(colors2[0] === 'green' && colors2[1] === 'purple'){
|
|
colors2.push('red');
|
|
}
|
|
if(colors2[0] === 'green' && colors2[1] === 'red'){
|
|
colors2.push('purple');
|
|
}
|
|
|
|
if(colors2[0] === 'purple' && colors2[1] === 'red'){
|
|
colors2.push('green');
|
|
}
|
|
if(colors2[0] === 'purple' && colors2[1] === 'green'){
|
|
colors2.push('red');
|
|
}
|
|
|
|
}
|
|
if(shapes2[0] === shapes2 [1]){
|
|
shapes2.push(shapes2[0]);
|
|
}
|
|
else{
|
|
if(shapes2[0] === 'oval' && shapes2[1] === 'diamond'){
|
|
shapes2.push('wave');
|
|
}
|
|
|
|
if(shapes2[0] === 'oval' && shapes2[1] === 'wave'){
|
|
shapes2.push('diamond');
|
|
}
|
|
|
|
if(shapes2[0] === 'diamond' && shapes2[1] === 'oval'){
|
|
shapes2.push('wave');
|
|
|
|
}
|
|
if(shapes2[0] === 'diamond' && shapes2[1] === 'wave'){
|
|
shapes2.push('oval');
|
|
}
|
|
|
|
if(shapes2[0] === 'wave' && shapes2[1] === 'diamond'){
|
|
shapes2.push('oval');
|
|
}
|
|
if(shapes2[0] === 'wave' && shapes2[1] === 'oval'){
|
|
shapes2.push('diamond');
|
|
}
|
|
}
|
|
|
|
if(numbers2[0] === numbers2[1]){
|
|
numbers2.push(numbers2[0]);
|
|
}
|
|
else{
|
|
if(numbers2[0] === 1 && numbers2[1] === 2){
|
|
numbers2.push(3);
|
|
}
|
|
|
|
if(numbers2[0] === 1 && numbers2[1] === 3){
|
|
numbers2.push(2);
|
|
}
|
|
|
|
if(numbers2[0] === 2 && numbers2[1] === 1){
|
|
numbers2.push(3);
|
|
}
|
|
if(numbers2[0] === 2 && numbers2[1] === 3){
|
|
numbers2.push(1);
|
|
}
|
|
|
|
if(numbers2[0] === 3 && numbers2[1] === 1){
|
|
numbers2.push(2);
|
|
}
|
|
if(numbers2[0] === 3 && numbers2[1] === 2){
|
|
numbers2.push(1);
|
|
}
|
|
|
|
}
|
|
|
|
var cards4 = [];
|
|
|
|
cards4.push({
|
|
shape: shapes2[2],
|
|
color: colors2[2],
|
|
number: numbers2[2]
|
|
});
|
|
|
|
return cards4;
|
|
},
|
|
|
|
generateVirtualCard35: function(cards1){
|
|
|
|
// modalité des combinaison de carte (ab ac ad ...) pour verifier si forme un set
|
|
var colors2= $.map(cards1, function(el) { return $(el).data("color");});
|
|
var shapes2 = $.map(cards1, function(el) { return $(el).data("shape");});
|
|
var fills2 = $.map(cards1, function(el) { return $(el).data("fill");});
|
|
var borders2 = $.map(cards1, function(el) { return $(el).data("border");});
|
|
var numbers2 = $.map(cards1, function(el) { return $(el).data("number");});
|
|
|
|
if (shapes2[0] === undefined && colors2[0] === undefined && fills2[0] === undefined && numbers2[0] === undefined && borders2[0] === undefined) {
|
|
colors2= $.map(cards1, function(el) { return el.color;});
|
|
shapes2 = $.map(cards1, function(el) { return el.shape;});
|
|
fills2 = $.map(cards1, function(el) { return el.fill;});
|
|
numbers2 = $.map(cards1, function(el) { return el.number;});
|
|
borders2 = $.map(cards1, function(el) { return el.border;});
|
|
|
|
}
|
|
|
|
|
|
|
|
if(colors2[0] === colors2 [1]){
|
|
colors2.push(colors2[0]);
|
|
}
|
|
else{
|
|
if(colors2[0] === 'red' && colors2[1] === 'green'){
|
|
colors2.push('purple');
|
|
}
|
|
|
|
if(colors2[0] === 'red' && colors2[1] === 'purple'){
|
|
colors2.push('green');
|
|
}
|
|
|
|
if(colors2[0] === 'green' && colors2[1] === 'purple'){
|
|
colors2.push('red');
|
|
}
|
|
if(colors2[0] === 'green' && colors2[1] === 'red'){
|
|
colors2.push('purple');
|
|
}
|
|
|
|
if(colors2[0] === 'purple' && colors2[1] === 'red'){
|
|
colors2.push('green');
|
|
}
|
|
if(colors2[0] === 'purple' && colors2[1] === 'green'){
|
|
colors2.push('red');
|
|
}
|
|
|
|
}
|
|
if(shapes2[0] === shapes2 [1]){
|
|
shapes2.push(shapes2[0]);
|
|
}
|
|
else{
|
|
if(shapes2[0] === 'oval' && shapes2[1] === 'diamond'){
|
|
shapes2.push('wave');
|
|
}
|
|
|
|
if(shapes2[0] === 'oval' && shapes2[1] === 'wave'){
|
|
shapes2.push('diamond');
|
|
}
|
|
|
|
if(shapes2[0] === 'diamond' && shapes2[1] === 'oval'){
|
|
shapes2.push('wave');
|
|
|
|
}
|
|
if(shapes2[0] === 'diamond' && shapes2[1] === 'wave'){
|
|
shapes2.push('oval');
|
|
}
|
|
|
|
if(shapes2[0] === 'wave' && shapes2[1] === 'diamond'){
|
|
shapes2.push('oval');
|
|
}
|
|
if(shapes2[0] === 'wave' && shapes2[1] === 'oval'){
|
|
shapes2.push('diamond');
|
|
}
|
|
}
|
|
if(fills2[0] === fills2 [1]){
|
|
fills2.push(fills2[0]);
|
|
}
|
|
else{
|
|
if(fills2[0] === 'solid' && fills2[1] === 'stripped'){
|
|
fills2.push('open');
|
|
}
|
|
|
|
if(fills2[0] === 'solid' && fills2[1] === 'open'){
|
|
fills2.push('stripped');
|
|
}
|
|
|
|
if(fills2[0] === 'stripped' && fills2[1] === 'open'){
|
|
fills2.push('solid');
|
|
}
|
|
if(fills2[0] === 'open' && fills2[1] === 'stripped'){
|
|
fills2.push('solid');
|
|
}
|
|
|
|
if(fills2[0] === 'stripped' && fills2[1] === 'solid'){
|
|
fills2.push('open');
|
|
}
|
|
if(fills2[0] === 'open' && fills2[1] === 'solid'){
|
|
fills2.push('stripped');
|
|
}
|
|
}
|
|
|
|
if(borders2[0] === borders2 [1]){
|
|
borders2.push(borders2[0]);
|
|
}
|
|
else{
|
|
if(borders2[0] === 'plein' && borders2[1] === 'point'){
|
|
borders2.push('rond');
|
|
}
|
|
|
|
if(borders2[0] === 'point' && borders2[1] === 'plein'){
|
|
borders2.push('rond');
|
|
}
|
|
|
|
if(borders2[0] === 'rond' && borders2[1] === 'plein'){
|
|
borders2.push('point');
|
|
}
|
|
if(borders2[0] === 'plein' && borders2[1] === 'rond'){
|
|
borders2.push('point');
|
|
}
|
|
|
|
if(borders2[0] === 'rond' && borders2[1] === 'point'){
|
|
borders2.push('plein');
|
|
}
|
|
if(borders2[0] === 'point' && borders2[1] === 'rond'){
|
|
borders2.push('plein');
|
|
}
|
|
}
|
|
|
|
if(numbers2[0] === numbers2[1]){
|
|
numbers2.push(numbers2[0]);
|
|
}
|
|
else{
|
|
if(numbers2[0] === 1 && numbers2[1] === 2){
|
|
numbers2.push(3);
|
|
}
|
|
|
|
if(numbers2[0] === 1 && numbers2[1] === 3){
|
|
numbers2.push(2);
|
|
}
|
|
|
|
if(numbers2[0] === 2 && numbers2[1] === 1){
|
|
numbers2.push(3);
|
|
}
|
|
if(numbers2[0] === 2 && numbers2[1] === 3){
|
|
numbers2.push(1);
|
|
}
|
|
|
|
if(numbers2[0] === 3 && numbers2[1] === 1){
|
|
numbers2.push(2);
|
|
}
|
|
if(numbers2[0] === 3 && numbers2[1] === 2){
|
|
numbers2.push(1);
|
|
}
|
|
|
|
}
|
|
var cards4 = [];
|
|
|
|
cards4.push({
|
|
shape: shapes2[2],
|
|
fill: fills2[2],
|
|
color: colors2[2],
|
|
border: borders2[2],
|
|
number: numbers2[2]
|
|
});
|
|
|
|
return cards4;
|
|
},
|
|
|
|
|
|
generateVirtualCard44: function(cards1){
|
|
|
|
var colors2= $.map(cards1, function(el) { return $(el).data("color");});
|
|
var shapes2 = $.map(cards1, function(el) { return $(el).data("shape");});
|
|
var fills2 = $.map(cards1, function(el) { return $(el).data("fill");});
|
|
var numbers2 = $.map(cards1, function(el) { return $(el).data("number");});
|
|
|
|
if (shapes2[0] === undefined && colors2[0] === undefined && fills2[0] === undefined && numbers2[0] === undefined) {
|
|
colors2= $.map(cards1, function(el) { return el.color;});
|
|
shapes2 = $.map(cards1, function(el) { return el.shape;});
|
|
fills2 = $.map(cards1, function(el) { return el.fill;});
|
|
numbers2 = $.map(cards1, function(el) { return el.number;});
|
|
}
|
|
|
|
|
|
if (colors2[0] === colors2[1] && colors2[0] === colors2[2]) {
|
|
colors2.push(colors2[0]);
|
|
|
|
} else {
|
|
if (colors2[0] === 'red' && colors2[1] === 'green' && colors2[2] === 'purple') {
|
|
colors2.push('lightblue');
|
|
}
|
|
|
|
if (colors2[0] === 'red' && colors2[1] === 'purple' && colors2[2] === 'green') {
|
|
colors2.push('lightblue');
|
|
}
|
|
|
|
if (colors2[0] === 'purple' && colors2[1] === 'red' && colors2[2] === 'green') {
|
|
colors2.push('lightblue');
|
|
}
|
|
if (colors2[0] === 'purple' && colors2[1] === 'green' && colors2[2] === 'red') {
|
|
colors2.push('lightblue');
|
|
}
|
|
|
|
if (colors2[0] === 'green' && colors2[1] === 'purple' && colors2[2] === 'red') {
|
|
colors2.push('lightblue');
|
|
}
|
|
if (colors2[0] === 'green' && colors2[1] === 'red' && colors2[2] === 'purple') {
|
|
colors2.push('lightblue');
|
|
}
|
|
|
|
|
|
if (colors2[0] === 'green' && colors2[1] === 'purple' && colors2[2] === 'lightblue') {
|
|
colors2.push('red');
|
|
|
|
}
|
|
|
|
if (colors2[0] === 'green' && colors2[1] === 'lightblue' && colors2[2] === 'purple') {
|
|
colors2.push('red');
|
|
}
|
|
|
|
if (colors2[0] === 'purple' && colors2[1] === 'lightblue' && colors2[2] === 'green') {
|
|
colors2.push('red');
|
|
}
|
|
if (colors2[0] === 'purple' && colors2[1] === 'green' && colors2[2] === 'lightblue') {
|
|
colors2.push('red');
|
|
}
|
|
|
|
if (colors2[0] === 'lightblue' && colors2[1] === 'purple' && colors2[2] === 'green') {
|
|
colors2.push('red');
|
|
}
|
|
if (colors2[0] === 'lightblue' && colors2[1] === 'green' && colors2[2] === 'purple') {
|
|
colors2.push('red');
|
|
}
|
|
|
|
|
|
if (colors2[0] === 'red' && colors2[1] === 'green' && colors2[2] === 'lightblue') {
|
|
colors2.push('purple');
|
|
}
|
|
|
|
if (colors2[0] === 'red' && colors2[1] === 'lightblue' && colors2[2] === 'green') {
|
|
colors2.push('purple');
|
|
}
|
|
|
|
if (colors2[0] === 'lightblue' && colors2[1] === 'green' && colors2[2] === 'red') {
|
|
colors2.push('purple');
|
|
}
|
|
if (colors2[0] === 'lightblue' && colors2[1] === 'red' && colors2[2] === 'green') {
|
|
colors2.push('purple');
|
|
}
|
|
|
|
if (colors2[0] === 'green' && colors2[1] === 'lightblue' && colors2[2] === 'red') {
|
|
colors2.push('purple');
|
|
}
|
|
if (colors2[0] === 'green' && colors2[1] === 'red' && colors2[2] === 'lightblue') {
|
|
colors2.push('purple');
|
|
}
|
|
|
|
|
|
if (colors2[0] === 'red' && colors2[1] === 'purple' && colors2[2] === 'lightblue') {
|
|
colors2.push('green');
|
|
}
|
|
|
|
if (colors2[0] === 'red' && colors2[1] === 'lightblue' && colors2[2] === 'purple') {
|
|
colors2.push('green');
|
|
}
|
|
|
|
if (colors2[0] === 'lightblue' && colors2[1] === 'purple' && colors2[2] === 'red') {
|
|
colors2.push('green');
|
|
}
|
|
if (colors2[0] === 'lightblue' && colors2[1] === 'red' && colors2[2] === 'purple') {
|
|
colors2.push('green');
|
|
}
|
|
|
|
if (colors2[0] === 'purple' && colors2[1] === 'lightblue' && colors2[2] === 'red') {
|
|
colors2.push('green');
|
|
}
|
|
if (colors2[0] === 'purple' && colors2[1] === 'red' && colors2[2] === 'lightblue') {
|
|
colors2.push('green');
|
|
}
|
|
|
|
}
|
|
|
|
|
|
if (shapes2[0] === shapes2 [1] && shapes2[0] === shapes2 [2]) {
|
|
shapes2.push(shapes2[0]);
|
|
} else {
|
|
if (shapes2[0] === 'oval' && shapes2[1] === 'diamond' && shapes2[2] === 'wave') {
|
|
shapes2.push('rectangle');
|
|
}
|
|
|
|
if (shapes2[0] === 'oval' && shapes2[1] === 'wave' && shapes2[2] === 'diamond') {
|
|
shapes2.push('rectangle');
|
|
}
|
|
|
|
if (shapes2[0] === 'wave' && shapes2[1] === 'diamond' && shapes2[2] === 'oval') {
|
|
shapes2.push('rectangle');
|
|
|
|
}
|
|
if (shapes2[0] === 'wave' && shapes2[1] === 'oval' && shapes2[2] === 'diamond') {
|
|
shapes2.push('rectangle');
|
|
}
|
|
|
|
if (shapes2[0] === 'diamond' && shapes2[1] === 'oval' && shapes2[2] === 'wave') {
|
|
shapes2.push('rectangle');
|
|
}
|
|
if (shapes2[0] === 'diamond' && shapes2[1] === 'wave' && shapes2[2] === 'oval') {
|
|
shapes2.push('rectangle');
|
|
}
|
|
|
|
|
|
if (shapes2[0] === 'oval' && shapes2[1] === 'diamond' && shapes2[2] === 'rectangle') {
|
|
shapes2.push('wave');
|
|
}
|
|
|
|
if (shapes2[0] === 'oval' && shapes2[1] === 'rectangle' && shapes2[2] === 'diamond') {
|
|
shapes2.push('wave');
|
|
}
|
|
|
|
if (shapes2[0] === 'rectangle' && shapes2[1] === 'oval' && shapes2[2] === 'diamond') {
|
|
shapes2.push('wave');
|
|
|
|
}
|
|
if (shapes2[0] === 'rectangle' && shapes2[1] === 'diamond' && shapes2[2] === 'oval') {
|
|
shapes2.push('wave');
|
|
}
|
|
|
|
if (shapes2[0] === 'diamond' && shapes2[1] === 'oval' && shapes2[2] === 'rectangle') {
|
|
shapes2.push('wave');
|
|
}
|
|
if (shapes2[0] === 'diamond' && shapes2[1] === 'rectangle' && shapes2[2] === 'oval') {
|
|
shapes2.push('wave');
|
|
}
|
|
|
|
|
|
if (shapes2[0] === 'oval' && shapes2[1] === 'wave' && shapes2[2] === 'rectangle') {
|
|
shapes2.push('diamond');
|
|
}
|
|
|
|
if (shapes2[0] === 'oval' && shapes2[1] === 'rectangle' && shapes2[2] === 'wave') {
|
|
shapes2.push('diamond');
|
|
}
|
|
|
|
if (shapes2[0] === 'rectangle' && shapes2[1] === 'wave' && shapes2[2] === 'oval') {
|
|
shapes2.push('diamond');
|
|
|
|
}
|
|
if (shapes2[0] === 'rectangle' && shapes2[1] === 'oval' && shapes2[2] === 'wave') {
|
|
shapes2.push('diamond');
|
|
}
|
|
|
|
if (shapes2[0] === 'wave' && shapes2[1] === 'oval' && shapes2[2] === 'rectangle') {
|
|
shapes2.push('diamond');
|
|
}
|
|
if (shapes2[0] === 'wave' && shapes2[1] === 'rectangle' && shapes2[2] === 'oval') {
|
|
shapes2.push('diamond');
|
|
}
|
|
|
|
|
|
if (shapes2[0] === 'diamond' && shapes2[1] === 'wave' && shapes2[2] === 'rectangle') {
|
|
shapes2.push('oval');
|
|
}
|
|
|
|
if (shapes2[0] === 'diamond' && shapes2[1] === 'rectangle' && shapes2[2] === 'wave') {
|
|
shapes2.push('oval');
|
|
}
|
|
|
|
if (shapes2[0] === 'rectangle' && shapes2[1] === 'wave' && shapes2[2] === 'diamond') {
|
|
shapes2.push('oval');
|
|
|
|
}
|
|
if (shapes2[0] === 'rectangle' && shapes2[1] === 'diamond' && shapes2[2] === 'wave') {
|
|
shapes2.push('oval');
|
|
}
|
|
|
|
if (shapes2[0] === 'wave' && shapes2[1] === 'diamond' && shapes2[2] === 'rectangle') {
|
|
shapes2.push('oval');
|
|
}
|
|
if (shapes2[0] === 'wave' && shapes2[1] === 'rectangle' && shapes2[2] === 'diamond') {
|
|
shapes2.push('oval');
|
|
}
|
|
|
|
}
|
|
if (fills2[0] === fills2 [1] && fills2[0] === fills2 [2]) {
|
|
fills2.push(fills2[0]);
|
|
} else {
|
|
if (fills2[0] === 'solid' && fills2[1] === 'stripped' && fills2[2] === 'open') {
|
|
fills2.push('quadrillage');
|
|
}
|
|
|
|
if (fills2[0] === 'solid' && fills2[1] === 'open' && fills2[2] === 'stripped') {
|
|
fills2.push('quadrillage');
|
|
}
|
|
|
|
if (fills2[0] === 'stripped' && fills2[1] === 'open' && fills2[2] === 'solid') {
|
|
fills2.push('quadrillage');
|
|
}
|
|
if (fills2[0] === 'stripped' && fills2[1] === 'solid' && fills2[2] === 'open') {
|
|
fills2.push('quadrillage');
|
|
}
|
|
|
|
if (fills2[0] === 'open' && fills2[1] === 'stripped' && fills2[2] === 'solid') {
|
|
fills2.push('quadrillage');
|
|
}
|
|
if (fills2[0] === 'open' && fills2[1] === 'solid' && fills2[2] === 'stripped') {
|
|
fills2.push('quadrillage');
|
|
}
|
|
|
|
|
|
if (fills2[0] === 'solid' && fills2[1] === 'stripped' && fills2[2] === 'quadrillage') {
|
|
fills2.push('open');
|
|
}
|
|
|
|
if (fills2[0] === 'solid' && fills2[1] === 'quadrillage' && fills2[2] === 'stripped') {
|
|
fills2.push('open');
|
|
}
|
|
|
|
if (fills2[0] === 'quadrillage' && fills2[1] === 'solid' && fills2[2] === 'stripped') {
|
|
fills2.push('open');
|
|
}
|
|
if (fills2[0] === 'quadrillage' && fills2[1] === 'stripped' && fills2[2] === 'solid') {
|
|
fills2.push('open');
|
|
}
|
|
|
|
if (fills2[0] === 'stripped' && fills2[1] === 'quadrillage' && fills2[2] === 'solid') {
|
|
fills2.push('open');
|
|
}
|
|
if (fills2[0] === 'stripped' && fills2[1] === 'solid' && fills2[2] === 'quadrillage') {
|
|
fills2.push('open');
|
|
}
|
|
|
|
|
|
if (fills2[0] === 'solid' && fills2[1] === 'open' && fills2[2] === 'quadrillage') {
|
|
fills2.push('stripped');
|
|
}
|
|
|
|
if (fills2[0] === 'solid' && fills2[1] === 'quadrillage' && fills2[2] === 'open') {
|
|
fills2.push('stripped');
|
|
}
|
|
|
|
if (fills2[0] === 'quadrillage' && fills2[1] === 'solid' && fills2[2] === 'open') {
|
|
fills2.push('stripped');
|
|
}
|
|
if (fills2[0] === 'quadrillage' && fills2[1] === 'open' && fills2[2] === 'solid') {
|
|
fills2.push('stripped');
|
|
}
|
|
|
|
if (fills2[0] === 'open' && fills2[1] === 'quadrillage' && fills2[2] === 'solid') {
|
|
fills2.push('stripped');
|
|
}
|
|
if (fills2[0] === 'open' && fills2[1] === 'solid' && fills2[2] === 'quadrillage') {
|
|
fills2.push('stripped');
|
|
}
|
|
|
|
|
|
if (fills2[0] === 'stripped' && fills2[1] === 'open' && fills2[2] === 'quadrillage') {
|
|
fills2.push('solid');
|
|
}
|
|
|
|
if (fills2[0] === 'stripped' && fills2[1] === 'quadrillage' && fills2[2] === 'open') {
|
|
fills2.push('solid');
|
|
}
|
|
|
|
if (fills2[0] === 'quadrillage' && fills2[1] === 'stripped' && fills2[2] === 'open') {
|
|
fills2.push('solid');
|
|
}
|
|
if (fills2[0] === 'quadrillage' && fills2[1] === 'open' && fills2[2] === 'stripped') {
|
|
fills2.push('solid');
|
|
}
|
|
|
|
if (fills2[0] === 'open' && fills2[1] === 'quadrillage' && fills2[2] === 'stripped') {
|
|
fills2.push('solid');
|
|
}
|
|
if (fills2[0] === 'open' && fills2[1] === 'stripped' && fills2[2] === 'quadrillage') {
|
|
fills2.push('solid');
|
|
}
|
|
|
|
|
|
}
|
|
if (numbers2[0] === numbers2[1] && numbers2[0] === numbers2[2]) {
|
|
numbers2.push(numbers2[0]);
|
|
} else {
|
|
if (numbers2[0] === 1 && numbers2[1] === 2 && numbers2[2] === 3) {
|
|
numbers2.push(4);
|
|
}
|
|
|
|
if (numbers2[0] === 1 && numbers2[1] === 3 && numbers2[2] === 2) {
|
|
numbers2.push(4);
|
|
}
|
|
|
|
if (numbers2[0] === 2 && numbers2[1] === 1 && numbers2[2] === 3) {
|
|
numbers2.push(4);
|
|
}
|
|
if (numbers2[0] === 2 && numbers2[1] === 3 && numbers2[2] === 1) {
|
|
numbers2.push(4);
|
|
}
|
|
|
|
if (numbers2[0] === 3 && numbers2[1] === 1 && numbers2[2] === 2) {
|
|
numbers2.push(4);
|
|
}
|
|
if (numbers2[0] === 3 && numbers2[1] === 2 && numbers2[2] === 1) {
|
|
numbers2.push(4);
|
|
}
|
|
|
|
|
|
if (numbers2[0] === 1 && numbers2[1] === 2 && numbers2[2] === 4) {
|
|
numbers2.push(3);
|
|
}
|
|
|
|
if (numbers2[0] === 1 && numbers2[1] === 4 && numbers2[2] === 2) {
|
|
numbers2.push(3);
|
|
}
|
|
|
|
if (numbers2[0] === 2 && numbers2[1] === 1 && numbers2[2] === 4) {
|
|
numbers2.push(3);
|
|
}
|
|
if (numbers2[0] === 2 && numbers2[1] === 4 && numbers2[2] === 1) {
|
|
numbers2.push(3);
|
|
}
|
|
|
|
if (numbers2[0] === 4 && numbers2[1] === 1 && numbers2[2] === 2) {
|
|
numbers2.push(3);
|
|
}
|
|
if (numbers2[0] === 4 && numbers2[1] === 2 && numbers2[2] === 1) {
|
|
numbers2.push(3);
|
|
}
|
|
|
|
|
|
if (numbers2[0] === 1 && numbers2[1] === 3 && numbers2[2] === 4) {
|
|
numbers2.push(2);
|
|
}
|
|
|
|
if (numbers2[0] === 1 && numbers2[1] === 4 && numbers2[2] === 3) {
|
|
numbers2.push(2);
|
|
}
|
|
|
|
if (numbers2[0] === 3 && numbers2[1] === 1 && numbers2[2] === 4) {
|
|
numbers2.push(2);
|
|
}
|
|
if (numbers2[0] === 3 && numbers2[1] === 4 && numbers2[2] === 1) {
|
|
numbers2.push(2);
|
|
}
|
|
|
|
if (numbers2[0] === 4 && numbers2[1] === 1 && numbers2[2] === 3) {
|
|
numbers2.push(2);
|
|
}
|
|
if (numbers2[0] === 4 && numbers2[1] === 3 && numbers2[2] === 1) {
|
|
numbers2.push(2);
|
|
}
|
|
|
|
|
|
if (numbers2[0] === 2 && numbers2[1] === 3 && numbers2[2] === 4) {
|
|
numbers2.push(1);
|
|
}
|
|
|
|
if (numbers2[0] === 2 && numbers2[1] === 4 && numbers2[2] === 3) {
|
|
numbers2.push(1);
|
|
}
|
|
|
|
if (numbers2[0] === 3 && numbers2[1] === 2 && numbers2[2] === 4) {
|
|
numbers2.push(1);
|
|
}
|
|
if (numbers2[0] === 3 && numbers2[1] === 4 && numbers2[2] === 2) {
|
|
numbers2.push(1);
|
|
}
|
|
|
|
if (numbers2[0] === 4 && numbers2[1] === 2 && numbers2[2] === 3) {
|
|
numbers2.push(1);
|
|
}
|
|
if (numbers2[0] === 4 && numbers2[1] === 3 && numbers2[2] === 2) {
|
|
numbers2.push(1);
|
|
}
|
|
}
|
|
|
|
var cards4 =[];
|
|
/*cards4.push({
|
|
shape: shapes2[0],
|
|
fill: fills2[0],
|
|
color: colors2[0],
|
|
number: numbers2[0]
|
|
});
|
|
cards4.push({
|
|
shape: shapes2[1],
|
|
fill: fills2[1],
|
|
color: colors2[1],
|
|
number: numbers2[1]
|
|
});
|
|
|
|
cards4.push({
|
|
shape: shapes2[2],
|
|
fill: fills2[2],
|
|
color: colors2[2],
|
|
number: numbers2[2]
|
|
});*/
|
|
|
|
cards4.push({
|
|
shape: shapes2[3],
|
|
fill: fills2[3],
|
|
color: colors2[3],
|
|
number: numbers2[3]
|
|
});
|
|
|
|
return cards4;
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
comparaison2Carte4:function (carte1, carte2){
|
|
if( carte1[0].color !== undefined && carte1[0].shape !== undefined && carte1[0].fill !== undefined && carte1[0].number !== undefined && carte2[0].color !== undefined && carte2[0].shape !== undefined && carte2[0].fill !== undefined && carte2[0].number !== undefined){
|
|
return carte1[0].color === carte2[0].color && carte1[0].shape === carte2[0].shape && carte1[0].number === carte2[0].number && carte1[0].fill === carte2[0].fill ;
|
|
}
|
|
else {
|
|
return false;
|
|
}
|
|
|
|
|
|
},
|
|
comparaison2Carte3:function (carte1, carte2) {
|
|
if( carte1[0].color !== undefined && carte1[0].shape !== undefined && carte1[0].number !== undefined && carte2[0].color !== undefined && carte2[0].shape !== undefined && carte2[0].number !== undefined){
|
|
return carte1[0].color === carte2[0].color && carte1[0].shape === carte2[0].shape && carte1[0].number === carte2[0].number ;
|
|
|
|
}
|
|
},
|
|
comparaison2Carte5:function (carte1, carte2) {
|
|
if( carte1[0].color !== undefined && carte1[0].border!== undefined && carte1[0].shape !== undefined && carte1[0].fill !== undefined && carte1[0].number !== undefined && carte2[0].color !== undefined && carte2[0].border !== undefined && carte2[0].shape !== undefined && carte2[0].fill !== undefined && carte2[0].number !== undefined){
|
|
return carte1[0].color === carte2[0].color && carte1[0].shape === carte2[0].shape && carte1[0].number === carte2[0].number && carte1[0].fill === carte2[0].fill ;
|
|
|
|
}
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
validateHyperSet0: function() {
|
|
var carteAB = [];
|
|
var carteCD = [];
|
|
var carteAC = [];
|
|
var carteBD = [];
|
|
var carteAD = [];
|
|
var carteBC = [];
|
|
|
|
carteAB.splice(0,1,this.selectedHS0[0]);
|
|
carteAB.splice(1,1,this.selectedHS0[1]);
|
|
carteCD.splice(0,1,this.selectedHS0[2]);
|
|
carteCD.splice(1,1,this.selectedHS0[3]);
|
|
|
|
carteAC.splice(0,1,this.selectedHS0[0]);
|
|
carteAC.splice(1,1,this.selectedHS0[2]);
|
|
carteBD.splice(0,1,this.selectedHS0[1]);
|
|
carteBD.splice(1,1,this.selectedHS0[3]);
|
|
|
|
carteAD.splice(0,1,this.selectedHS0[0]);
|
|
carteAD.splice(1,1,this.selectedHS0[3]);
|
|
carteBC.splice(0,1,this.selectedHS0[1]);
|
|
carteBC.splice(1,1,this.selectedHS0[2]);
|
|
|
|
var card3 = this.generateVirtualCard33(carteAB);
|
|
var card4 = this.generateVirtualCard33(carteCD);
|
|
if (this.comparaison2Carte3(card3,card4)){
|
|
return true;
|
|
}
|
|
|
|
var card5 = this.generateVirtualCard33(carteAC);
|
|
var card6 = this.generateVirtualCard33(carteBD);
|
|
if (this.comparaison2Carte3(card5,card6)){
|
|
return true;
|
|
}
|
|
|
|
var card7 = this.generateVirtualCard33(carteAD);
|
|
var card8 = this.generateVirtualCard33(carteBC);
|
|
if (this.comparaison2Carte3(card7,card8)){
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
|
|
},
|
|
|
|
validateHyperSet: function() {
|
|
var carteAB = [];
|
|
var carteCD = [];
|
|
var carteAC = [];
|
|
var carteBD = [];
|
|
var carteAD = [];
|
|
var carteBC = [];
|
|
|
|
carteAB.splice(0,1,this.selectedHS[0]);
|
|
carteAB.splice(1,1,this.selectedHS[1]);
|
|
carteCD.splice(0,1,this.selectedHS[2]);
|
|
carteCD.splice(1,1,this.selectedHS[3]);
|
|
|
|
carteAC.splice(0,1,this.selectedHS[0]);
|
|
carteAC.splice(1,1,this.selectedHS[2]);
|
|
carteBD.splice(0,1,this.selectedHS[1]);
|
|
carteBD.splice(1,1,this.selectedHS[3]);
|
|
|
|
carteAD.splice(0,1,this.selectedHS[0]);
|
|
carteAD.splice(1,1,this.selectedHS[3]);
|
|
carteBC.splice(0,1,this.selectedHS[1]);
|
|
carteBC.splice(1,1,this.selectedHS[2]);
|
|
|
|
|
|
|
|
var card3 = this.generateVirtualCard34(carteAB);
|
|
var card4 = this.generateVirtualCard34(carteCD);
|
|
if (this.comparaison2Carte4(card3,card4)){
|
|
return true;
|
|
}
|
|
|
|
var card5 = this.generateVirtualCard34(carteAC);
|
|
var card6 = this.generateVirtualCard34(carteBD);
|
|
if (this.comparaison2Carte4(card5,card6)){
|
|
return true;
|
|
}
|
|
|
|
var card7 = this.generateVirtualCard34(carteAD);
|
|
var card8 = this.generateVirtualCard34(carteBC);
|
|
if (this.comparaison2Carte4(card7,card8)){
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
|
|
|
|
},
|
|
|
|
validateHyperSet1: function() {
|
|
var carteAB = [];
|
|
var carteCD = [];
|
|
var carteAC = [];
|
|
var carteBD = [];
|
|
var carteAD = [];
|
|
var carteBC = [];
|
|
|
|
carteAB.splice(0,1,this.selectedHS1[0]);
|
|
carteAB.splice(1,1,this.selectedHS1[1]);
|
|
carteCD.splice(0,1,this.selectedHS1[2]);
|
|
carteCD.splice(1,1,this.selectedHS1[3]);
|
|
|
|
carteAC.splice(0,1,this.selectedHS1[0]);
|
|
carteAC.splice(1,1,this.selectedHS1[2]);
|
|
carteBD.splice(0,1,this.selectedHS1[1]);
|
|
carteBD.splice(1,1,this.selectedHS1[3]);
|
|
|
|
carteAD.splice(0,1,this.selectedHS1[0]);
|
|
carteAD.splice(1,1,this.selectedHS1[3]);
|
|
carteBC.splice(0,1,this.selectedHS1[1]);
|
|
carteBC.splice(1,1,this.selectedHS1[2]);
|
|
|
|
|
|
var card3 = this.generateVirtualCard35(carteAB);
|
|
var card4 = this.generateVirtualCard35(carteCD);
|
|
if (this.comparaison2Carte5(card3,card4)){
|
|
return true;
|
|
}
|
|
|
|
var card5 = this.generateVirtualCard35(carteAC);
|
|
var card6 = this.generateVirtualCard35(carteBD);
|
|
if (this.comparaison2Carte5(card5,card6)){
|
|
return true;
|
|
}
|
|
|
|
var card7 = this.generateVirtualCard35(carteAD);
|
|
var card8 = this.generateVirtualCard35(carteBC);
|
|
if (this.comparaison2Carte5(card7,card8)){
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
|
|
|
|
},
|
|
|
|
|
|
validateHyperSet2: function() {
|
|
|
|
|
|
var carteABC = [];
|
|
var carteDEF = [];
|
|
|
|
var carteABD = [];
|
|
var carteCEF = [];
|
|
|
|
var carteABE = [];
|
|
var carteCDF = [];
|
|
|
|
var carteABF = [];
|
|
var carteCDE = [];
|
|
|
|
var carteACD = [];
|
|
var carteBEF = [];
|
|
|
|
var carteACE = [];
|
|
var carteBDF = [];
|
|
|
|
var carteACF = [];
|
|
var carteBDE = [];
|
|
|
|
var carteADE = [];
|
|
var carteBCF = [];
|
|
|
|
var carteADF = [];
|
|
var carteBCE = [];
|
|
|
|
var carteAEF = [];
|
|
var carteBCD = [];
|
|
|
|
|
|
carteABC.splice(0, 1, this.selectedHS2[0]);
|
|
carteABC.splice(1, 1, this.selectedHS2[1]);
|
|
carteABC.splice(2, 1, this.selectedHS2[2]);
|
|
carteDEF.splice(0, 1, this.selectedHS2[3]);
|
|
carteDEF.splice(1, 1, this.selectedHS2[4]);
|
|
carteDEF.splice(2, 1, this.selectedHS2[5]);
|
|
|
|
carteABD.splice(0, 1, this.selectedHS2[0]);
|
|
carteABD.splice(1, 1, this.selectedHS2[1]);
|
|
carteABD.splice(2, 1, this.selectedHS2[3]);
|
|
carteCEF.splice(0, 1, this.selectedHS2[2]);
|
|
carteCEF.splice(1, 1, this.selectedHS2[4]);
|
|
carteCEF.splice(2, 1, this.selectedHS2[5]);
|
|
|
|
carteABE.splice(0, 1, this.selectedHS2[0]);
|
|
carteABE.splice(1, 1, this.selectedHS2[1]);
|
|
carteABE.splice(2, 1, this.selectedHS2[4]);
|
|
carteCDF.splice(0, 1, this.selectedHS2[2]);
|
|
carteCDF.splice(1, 1, this.selectedHS2[3]);
|
|
carteCDF.splice(2, 1, this.selectedHS2[5]);
|
|
|
|
carteABF.splice(0, 1, this.selectedHS2[0]);
|
|
carteABF.splice(1, 1, this.selectedHS2[1]);
|
|
carteABF.splice(2, 1, this.selectedHS2[5]);
|
|
carteCDE.splice(0, 1, this.selectedHS2[2]);
|
|
carteCDE.splice(1, 1, this.selectedHS2[3]);
|
|
carteCDE.splice(2, 1, this.selectedHS2[4]);
|
|
|
|
carteACD.splice(0, 1, this.selectedHS2[0]);
|
|
carteACD.splice(1, 1, this.selectedHS2[2]);
|
|
carteACD.splice(2, 1, this.selectedHS2[3]);
|
|
carteBEF.splice(0, 1, this.selectedHS2[1]);
|
|
carteBEF.splice(1, 1, this.selectedHS2[4]);
|
|
carteBEF.splice(2, 1, this.selectedHS2[5]);
|
|
|
|
carteACE.splice(0, 1, this.selectedHS2[0]);
|
|
carteACE.splice(1, 1, this.selectedHS2[2]);
|
|
carteACE.splice(2, 1, this.selectedHS2[4]);
|
|
carteBDF.splice(0, 1, this.selectedHS2[1]);
|
|
carteBDF.splice(1, 1, this.selectedHS2[3]);
|
|
carteBDF.splice(2, 1, this.selectedHS2[5]);
|
|
|
|
carteACF.splice(0, 1, this.selectedHS2[0]);
|
|
carteACF.splice(1, 1, this.selectedHS2[2]);
|
|
carteACF.splice(2, 1, this.selectedHS2[5]);
|
|
carteBDE.splice(0, 1, this.selectedHS2[1]);
|
|
carteBDE.splice(1, 1, this.selectedHS2[3]);
|
|
carteBDE.splice(2, 1, this.selectedHS2[4]);
|
|
|
|
carteADE.splice(0, 1, this.selectedHS2[0]);
|
|
carteADE.splice(1, 1, this.selectedHS2[3]);
|
|
carteADE.splice(2, 1, this.selectedHS2[4]);
|
|
carteBCF.splice(0, 1, this.selectedHS2[1]);
|
|
carteBCF.splice(1, 1, this.selectedHS2[2]);
|
|
carteBCF.splice(2, 1, this.selectedHS2[5]);
|
|
|
|
carteADF.splice(0, 1, this.selectedHS2[0]);
|
|
carteADF.splice(1, 1, this.selectedHS2[3]);
|
|
carteADF.splice(2, 1, this.selectedHS2[5]);
|
|
carteBCE.splice(0, 1, this.selectedHS2[1]);
|
|
carteBCE.splice(1, 1, this.selectedHS2[2]);
|
|
carteBCE.splice(2, 1, this.selectedHS2[4]);
|
|
|
|
carteAEF.splice(0, 1, this.selectedHS2[0]);
|
|
carteAEF.splice(1, 1, this.selectedHS2[4]);
|
|
carteAEF.splice(2, 1, this.selectedHS2[5]);
|
|
carteBCD.splice(0, 1, this.selectedHS2[1]);
|
|
carteBCD.splice(1, 1, this.selectedHS2[2]);
|
|
carteBCD.splice(2, 1, this.selectedHS2[3]);
|
|
|
|
|
|
var card3 = this.generateVirtualCard44(carteABC);
|
|
var card4 = this.generateVirtualCard44(carteDEF);
|
|
if (this.comparaison2Carte4(card3,card4)){
|
|
return true;
|
|
}
|
|
|
|
var card5 = this.generateVirtualCard44(carteABD);
|
|
var card6 = this.generateVirtualCard44(carteCEF);
|
|
if (this.comparaison2Carte4(card5,card6)){
|
|
return true;
|
|
}
|
|
var card7 = this.generateVirtualCard44(carteABE);
|
|
var card8 = this.generateVirtualCard44(carteCDF);
|
|
if (this.comparaison2Carte4(card7,card8)){
|
|
return true;
|
|
}
|
|
var card9 = this.generateVirtualCard44(carteABF);
|
|
var card10 = this.generateVirtualCard44(carteCDE);
|
|
if (this.comparaison2Carte4(card9,card10)){
|
|
return true;
|
|
}
|
|
var card11 = this.generateVirtualCard44(carteACD);
|
|
var card12 = this.generateVirtualCard44(carteBEF);
|
|
if (this.comparaison2Carte4(card11,card12)){
|
|
return true;
|
|
}
|
|
var card13 = this.generateVirtualCard44(carteACE);
|
|
var card14 = this.generateVirtualCard44(carteBDF);
|
|
if (this.comparaison2Carte4(card13,card14)){
|
|
return true;
|
|
}
|
|
var card15 = this.generateVirtualCard44(carteACF);
|
|
var card16 = this.generateVirtualCard44(carteBDE);
|
|
if (this.comparaison2Carte4(card15,card16)){
|
|
return true;
|
|
}
|
|
var card17 = this.generateVirtualCard44(carteADE);
|
|
var card18 = this.generateVirtualCard44(carteBCF);
|
|
if (this.comparaison2Carte4(card17,card18)){
|
|
return true;
|
|
}
|
|
var card19= this.generateVirtualCard44(carteADF);
|
|
var card20 = this.generateVirtualCard44(carteBCE);
|
|
if (this.comparaison2Carte4(card19,card20)){
|
|
return true;
|
|
}
|
|
var card21 = this.generateVirtualCard44(carteAEF);
|
|
var card22 = this.generateVirtualCard44(carteBCD);
|
|
if (this.comparaison2Carte4(card21,card22)){
|
|
return true;
|
|
}
|
|
return false;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
validateSet0: function() {
|
|
var self = this;
|
|
|
|
var colors = $.map(self.selected0, function(el) { return $(el).data("color");});
|
|
var shapes = $.map(self.selected0, function(el) { return $(el).data("shape"); });
|
|
var numbers= $.map(self.selected0, function(el) { return $(el).data("number"); });
|
|
|
|
return (self.isSet(colors) && self.isSet(shapes) && self.isSet(numbers));
|
|
},
|
|
|
|
validateSet: function() {
|
|
var self = this;
|
|
|
|
var colors = $.map(self.selected, function(el) { return $(el).data("color");});
|
|
var shapes = $.map(self.selected, function(el) { return $(el).data("shape"); });
|
|
var fills= $.map(self.selected, function(el) { return $(el).data("fill"); });
|
|
var numbers = $.map(self.selected, function(el) { return $(el).data("number"); });
|
|
|
|
return (self.isSet(colors) && self.isSet(shapes) && self.isSet(fills) && self.isSet(numbers));
|
|
},
|
|
|
|
validateSet35: function() {
|
|
var self = this;
|
|
|
|
var colors = $.map(self.selected1, function(el) { return $(el).data("color");});
|
|
var shapes = $.map(self.selected1, function(el) { return $(el).data("shape"); });
|
|
var fills= $.map(self.selected1, function(el) { return $(el).data("fill"); });
|
|
var borders= $.map(self.selected1, function(el) { return $(el).data("border"); });
|
|
var numbers = $.map(self.selected1, function(el) { return $(el).data("number"); });
|
|
|
|
|
|
return (self.isSet(colors) && self.isSet(shapes) && self.isSet(fills) && self.isSet(borders) && self.isSet(numbers));
|
|
},
|
|
|
|
validateSet44: function() {
|
|
var self = this;
|
|
|
|
var colors = $.map(self.selected2, function(el) { return $(el).data("color");});
|
|
var shapes = $.map(self.selected2, function(el) { return $(el).data("shape"); });
|
|
var fills= $.map(self.selected2, function(el) { return $(el).data("fill"); });
|
|
var numbers = $.map(self.selected2, function(el) { return $(el).data("number"); });
|
|
|
|
|
|
return (self.isSet4(colors) && self.isSet4(shapes) && self.isSet4(fills) && self.isSet4(numbers));
|
|
},
|
|
|
|
validateSet45: function() {
|
|
var self = this;
|
|
|
|
var colors = $.map(self.selected3, function(el) { return $(el).data("color");});
|
|
var shapes = $.map(self.selected3, function(el) { return $(el).data("shape"); });
|
|
var fills= $.map(self.selected3, function(el) { return $(el).data("fill"); });
|
|
var borders= $.map(self.selected3, function(el) { return $(el).data("border"); });
|
|
var numbers = $.map(self.selected3, function(el) { return $(el).data("number"); });
|
|
|
|
|
|
return (self.isSet4(colors) && self.isSet4(shapes) && self.isSet4(borders) && self.isSet4(fills) && self.isSet4(numbers));
|
|
},
|
|
|
|
validateSet55: function() {
|
|
var self = this;
|
|
|
|
var colors = $.map(self.selected4, function(el) { return $(el).data("color");});
|
|
var shapes = $.map(self.selected4, function(el) { return $(el).data("shape"); });
|
|
var fills= $.map(self.selected4, function(el) { return $(el).data("fill"); });
|
|
var borders= $.map(self.selected4, function(el) { return $(el).data("border"); });
|
|
var numbers = $.map(self.selected4, function(el) { return $(el).data("number"); });
|
|
|
|
|
|
return (self.isSet5(colors) && self.isSet5(shapes) && self.isSet5(fills) && self.isSet5(borders) && self.isSet5(numbers));
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
isSet: function(arr) {
|
|
var unique = [];
|
|
$.each(arr, function(i, el){
|
|
if($.inArray(el, unique) === -1) unique.push(el);
|
|
});
|
|
return unique.length === 1 || unique.length === 3;
|
|
|
|
},
|
|
|
|
isSet4: function(arr) {
|
|
var unique = [];
|
|
$.each(arr, function(i, el){
|
|
if($.inArray(el, unique) === -1) unique.push(el);
|
|
});
|
|
|
|
return unique.length === 1 || unique.length === 4;
|
|
|
|
},
|
|
|
|
isSet5: function(arr) {
|
|
var unique = [];
|
|
$.each(arr, function(i, el){
|
|
if($.inArray(el, unique) === -1) unique.push(el);
|
|
});
|
|
return unique.length === 1 || unique.length === 5;
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
silentSubmission0: function() {
|
|
var valid = this.validateSet0();
|
|
if (valid) {
|
|
this.submitSet0();
|
|
}
|
|
},
|
|
silentSubmission: function() {
|
|
var valid = this.validateSet();
|
|
if (valid) {
|
|
this.submitSet();
|
|
}
|
|
},
|
|
silentSubmission1: function() {
|
|
var valid = this.validateSet35();
|
|
if (valid) {
|
|
this.submitSet1();
|
|
}
|
|
},
|
|
silentSubmission2: function() {
|
|
var valid = this.validateSet44();
|
|
if (valid) {
|
|
this.submitSet2();
|
|
}
|
|
},
|
|
silentSubmission3: function() {
|
|
var valid = this.validateSet45();
|
|
if (valid) {
|
|
this.submitSet3();
|
|
}
|
|
},
|
|
silentSubmission4: function() {
|
|
var valid = this.validateSet55();
|
|
if (valid) {
|
|
this.submitSet4();
|
|
}
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
silentSubmissionHS: function() {
|
|
var valid = this.validateHyperSet();
|
|
if (valid) {
|
|
this.submitSetHS();
|
|
}
|
|
},
|
|
silentSubmissionHS0: function() {
|
|
var valid = this.validateHyperSet0();
|
|
if (valid) {
|
|
this.submitSetHS0();
|
|
}
|
|
},
|
|
silentSubmissionHS1: function() {
|
|
var valid = this.validateHyperSet1();
|
|
if (valid) {
|
|
this.submitSetHS1();
|
|
}
|
|
},
|
|
silentSubmissionHS2: function() {
|
|
var valid = this.validateHyperSet2();
|
|
if (valid) {
|
|
this.submitSetHS2();
|
|
}
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
submitSet0: function() {
|
|
var self = this;
|
|
var ids = $.map(self.selected0, function(el) { return $(el).data("id");});
|
|
|
|
|
|
// ajax request to get initial set of cards
|
|
var newCardRequest = $.ajax({
|
|
url: 'set.php?action=submit0',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
self.clearCards0(ids, data);
|
|
|
|
// to do - implement game complete check on server
|
|
if (!data.gameComplete) {
|
|
self.set0 = 0;
|
|
//self.updateCards(data);
|
|
self.existingSet0();
|
|
self.increaseScore0();
|
|
} else {
|
|
self.gameWon();
|
|
}
|
|
},
|
|
error: function() {
|
|
console.log(arguments);
|
|
}
|
|
});
|
|
|
|
this.clearSelections(this.selected0);
|
|
},
|
|
|
|
submitSet: function() {
|
|
var self = this;
|
|
var ids = $.map(self.selected, function(el) { return $(el).data("id");});
|
|
|
|
// ajax request to get initial set of cards
|
|
var newCardRequest = $.ajax({
|
|
url: 'set.php?action=submit',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
self.clearCards(ids, data);
|
|
|
|
// to do - implement game complete check on server
|
|
if (!data.gameComplete) {
|
|
self.set = 0;
|
|
//self.updateCards(data);
|
|
self.existingSet();
|
|
self.increaseScore();
|
|
} else {
|
|
self.gameWon();
|
|
}
|
|
},
|
|
error: function() {
|
|
console.log(arguments);
|
|
}
|
|
});
|
|
|
|
this.clearSelections(this.selected);
|
|
},
|
|
|
|
submitSet1: function() {
|
|
var self = this;
|
|
var ids = $.map(self.selected1, function(el) { return $(el).data("id");});
|
|
|
|
// ajax request to get initial set of cards
|
|
var newCardRequest = $.ajax({
|
|
url: 'set.php?action=submit1',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
self.clearCards1(ids,data);
|
|
// to do - implement game complete check on server
|
|
if (!data.gameComplete) {
|
|
self.set1 = 0;
|
|
//self.updateCards1(data);
|
|
self.existingSet1();
|
|
self.increaseScore1();
|
|
} else {
|
|
self.gameWon();
|
|
}
|
|
},
|
|
error: function() {
|
|
console.log(arguments);
|
|
}
|
|
});
|
|
|
|
this.clearSelections(this.selected1);
|
|
},
|
|
|
|
|
|
submitSet2: function() {
|
|
var self = this;
|
|
var ids = $.map(self.selected2, function(el) { return $(el).data("id");});
|
|
|
|
// ajax request to get initial set of cards
|
|
var newCardRequest = $.ajax({
|
|
url: 'set.php?action=submit2',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
self.set2 = 0;
|
|
self.clearCards2(ids,data);
|
|
// to do - implement game complete check on server
|
|
if (!data.gameComplete) {
|
|
|
|
//self.updateCards2(data);
|
|
self.existingSet2();
|
|
self.increaseScore2();
|
|
} else {
|
|
self.gameWon();
|
|
}
|
|
},
|
|
error: function() {
|
|
console.log(arguments);
|
|
}
|
|
});
|
|
|
|
this.clearSelections(this.selected2);
|
|
},
|
|
|
|
|
|
submitSet3: function() {
|
|
var self = this;
|
|
var ids = $.map(self.selected3, function(el) { return $(el).data("id");});
|
|
|
|
// ajax request to get initial set of cards
|
|
var newCardRequest = $.ajax({
|
|
url: 'set.php?action=submit3',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
self.clearCards3(ids,data);
|
|
// to do - implement game complete check on server
|
|
if (!data.gameComplete) {
|
|
self.set3 = 0;
|
|
//self.updateCards3(data);
|
|
//self.existingSet3();
|
|
self.increaseScore3();
|
|
} else {
|
|
self.gameWon();
|
|
}
|
|
},
|
|
error: function() {
|
|
console.log(arguments);
|
|
}
|
|
});
|
|
|
|
this.clearSelections(this.selected3);
|
|
},
|
|
|
|
|
|
|
|
submitSet4: function() {
|
|
var self = this;
|
|
var ids = $.map(self.selected4, function(el) { return $(el).data("id");});
|
|
|
|
// ajax request to get initial set of cards
|
|
var newCardRequest = $.ajax({
|
|
url: 'set.php?action=submit4',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
console.log(data);
|
|
self.clearCards4(ids,data);
|
|
// to do - implement game complete check on server
|
|
if (!data.gameComplete) {
|
|
self.set4 = 0;
|
|
//self.updateCards4(data);
|
|
//self.existingSet4();
|
|
self.increaseScore4();
|
|
} else {
|
|
self.gameWon();
|
|
}
|
|
},
|
|
error: function() {
|
|
console.log(arguments);
|
|
}
|
|
});
|
|
|
|
this.clearSelections(this.selected4);
|
|
},
|
|
|
|
|
|
|
|
submitSetHS: function() {
|
|
var self = this;
|
|
var ids = $.map(self.selectedHS, function(el) { return $(el).data("id");});
|
|
|
|
|
|
// ajax request to get initial set of cards
|
|
var newCardRequest = $.ajax({
|
|
url: 'set.php?action=submitHS',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
self.clearCardsHS(ids, data);
|
|
|
|
// to do - implement game complete check on server
|
|
if (!data.gameComplete) {
|
|
//self.set0 = 0;
|
|
//self.updateCards(data);
|
|
//self.existingSet0();
|
|
self.increaseScoreHS();
|
|
} else {
|
|
self.gameWon();
|
|
}
|
|
},
|
|
error: function() {
|
|
console.log(arguments);
|
|
}
|
|
});
|
|
|
|
this.clearSelections(this.selectedHS);
|
|
},
|
|
|
|
|
|
submitSetHS0: function() {
|
|
var self = this;
|
|
var ids = $.map(self.selectedHS0, function(el) { return $(el).data("id");});
|
|
|
|
|
|
// ajax request to get initial set of cards
|
|
var newCardRequest = $.ajax({
|
|
url: 'set.php?action=submitHS0',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
self.clearCardsHS0(ids, data);
|
|
|
|
// to do - implement game complete check on server
|
|
if (!data.gameComplete) {
|
|
//self.set0 = 0;
|
|
//self.updateCards(data);
|
|
//self.existingSet0();
|
|
self.increaseScoreHS0();
|
|
} else {
|
|
self.gameWon();
|
|
}
|
|
},
|
|
error: function() {
|
|
console.log(arguments);
|
|
}
|
|
});
|
|
|
|
this.clearSelections(this.selectedHS0);
|
|
},
|
|
|
|
submitSetHS1: function() {
|
|
var self = this;
|
|
var ids = $.map(self.selectedHS1, function(el) { return $(el).data("id");});
|
|
|
|
|
|
// ajax request to get initial set of cards
|
|
var newCardRequest = $.ajax({
|
|
url: 'set.php?action=submitHS1',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
self.clearCardsHS1(ids, data);
|
|
|
|
// to do - implement game complete check on server
|
|
if (!data.gameComplete) {
|
|
//self.set0 = 0;
|
|
//self.updateCards(data);
|
|
//self.existingSet0();
|
|
self.increaseScoreHS1();
|
|
} else {
|
|
self.gameWon();
|
|
}
|
|
},
|
|
error: function() {
|
|
console.log(arguments);
|
|
}
|
|
});
|
|
|
|
this.clearSelections(this.selectedHS1);
|
|
},
|
|
submitSetHS2: function() {
|
|
var self = this;
|
|
var ids = $.map(self.selectedHS2, function(el) { return $(el).data("id");});
|
|
|
|
|
|
// ajax request to get initial set of cards
|
|
var newCardRequest = $.ajax({
|
|
url: 'set.php?action=submitHS2',
|
|
type: 'GET',
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
self.clearCardsHS2(ids, data);
|
|
|
|
// to do - implement game complete check on server
|
|
if (!data.gameComplete) {
|
|
//self.set0 = 0;
|
|
//self.updateCards(data);
|
|
//self.existingSet0();
|
|
self.increaseScoreHS2();
|
|
} else {
|
|
self.gameWon();
|
|
}
|
|
},
|
|
error: function() {
|
|
console.log(arguments);
|
|
}
|
|
});
|
|
|
|
this.clearSelections(this.selectedHS2);
|
|
},
|
|
|
|
|
|
|
|
|
|
remplacerCarte : function(location, card, setOfCards){
|
|
setOfCards.splice(location,1,card);
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
clearCards0: function(ids,data) {
|
|
var self = this;
|
|
this.selected0 = [];
|
|
this.$board0.empty();
|
|
var cardIds = $.map(self.cards0, function(card) { return card.id; });
|
|
$.each(ids, function(idx, id) {
|
|
var location = cardIds.indexOf(id);
|
|
if (location > -1) {
|
|
cardIds.splice(location, 1);
|
|
if(data[idx] != null){
|
|
self.remplacerCarte(location,data[idx],self.cards0);
|
|
cardIds = $.map(self.cards0, function(card) { return card.id; });
|
|
}
|
|
else{
|
|
self.cards0.splice(location, 1);
|
|
|
|
|
|
}
|
|
|
|
}
|
|
});
|
|
this.displayCards0();
|
|
if(self.cards0.length === 0){
|
|
alert("you won!");
|
|
}
|
|
},
|
|
|
|
clearCards: function(ids,data) {
|
|
var self = this;
|
|
this.selected = [];
|
|
this.$board.empty();
|
|
var cardIds = $.map(self.cards, function(card) { return card.id; });
|
|
$.each(ids, function(idx, id) {
|
|
var location = cardIds.indexOf(id);
|
|
if (location > -1) {
|
|
cardIds.splice(location, 1);
|
|
if(data[idx] != null){
|
|
self.remplacerCarte(location,data[idx],self.cards);
|
|
cardIds = $.map(self.cards, function(card) { return card.id; });
|
|
}
|
|
else{
|
|
self.cards.splice(location, 1);
|
|
}
|
|
}
|
|
});
|
|
this.displayCards();
|
|
if(self.cards.length === 0){
|
|
alert("you won!");
|
|
}
|
|
},
|
|
clearCards1: function(ids,data) {
|
|
// remove submitted cards game's card array and clear the board
|
|
var self = this;
|
|
this.selected1 = [];
|
|
this.$board1.empty();
|
|
var cardIds = $.map(self.cards1, function(card) { return card.id; });
|
|
$.each(ids, function(idx, id) {
|
|
var location = cardIds.indexOf(id);
|
|
if (location > -1) {
|
|
cardIds.splice(location, 1);
|
|
if(data[idx] != null){
|
|
self.remplacerCarte(location,data[idx],self.cards1);
|
|
cardIds = $.map(self.cards1, function(card) { return card.id; });
|
|
}
|
|
else{
|
|
self.cards1.splice(location, 1);
|
|
}
|
|
}
|
|
});
|
|
this.displayCards1();
|
|
if(self.cards1.length === 0){
|
|
alert("you won!");
|
|
}
|
|
},
|
|
clearCards2: function(ids, data) {
|
|
// remove submitted cards game's card array and clear the board
|
|
var self = this;
|
|
this.selected2 = [];
|
|
this.$board2.empty();
|
|
var cardIds = $.map(self.cards2, function(card) { return card.id; });
|
|
$.each(ids, function(idx, id) {
|
|
var location = cardIds.indexOf(id);
|
|
if (location > -1) {
|
|
cardIds.splice(location, 1);
|
|
if(data[idx] != null){
|
|
self.remplacerCarte(location,data[idx],self.cards2);
|
|
cardIds = $.map(self.cards2, function(card) { return card.id; });
|
|
}
|
|
else{
|
|
self.cards2.splice(location, 1);
|
|
}
|
|
}
|
|
});
|
|
this.displayCards2();
|
|
if(self.cards2.length === 0){
|
|
alert("you won!");
|
|
}
|
|
},
|
|
clearCards3: function(ids,data) {
|
|
// remove submitted cards game's card array and clear the board
|
|
var self = this;
|
|
this.selected3 = [];
|
|
this.$board3.empty();
|
|
var cardIds = $.map(self.cards3, function(card) { return card.id; });
|
|
$.each(ids, function(idx, id) {
|
|
var location = cardIds.indexOf(id);
|
|
if (location > -1) {
|
|
cardIds.splice(location, 1);
|
|
if(data[idx] != null){
|
|
self.remplacerCarte(location,data[idx],self.cards3);
|
|
cardIds = $.map(self.cards3, function(card) { return card.id; });
|
|
}
|
|
else{
|
|
self.cards3.splice(location, 1);
|
|
}
|
|
}
|
|
});
|
|
this.displayCards3();
|
|
if(self.cards3.length === 0){
|
|
alert("you won!");
|
|
}
|
|
},
|
|
clearCards4: function(ids,data) {
|
|
// remove submitted cards game's card array and clear the board
|
|
var self = this;
|
|
this.selected4 = [];
|
|
this.$board4.empty();
|
|
var cardIds = $.map(self.cards4, function(card) { return card.id; });
|
|
$.each(ids, function(idx, id) {
|
|
var location = cardIds.indexOf(id);
|
|
if (location > -1) {
|
|
cardIds.splice(location, 1);
|
|
if(data[idx] != null){
|
|
self.remplacerCarte(location,data[idx],self.cards4);
|
|
cardIds = $.map(self.cards4, function(card) { return card.id; });
|
|
}
|
|
else{
|
|
self.cards4.splice(location, 1);
|
|
}
|
|
}
|
|
});
|
|
this.displayCards4();
|
|
if(self.cards4.length === 0){
|
|
alert("you won!");
|
|
}
|
|
},
|
|
|
|
clearCardsHS: function(ids,data) {
|
|
var self = this;
|
|
this.selectedHS = [];
|
|
this.$boardHS.empty();
|
|
var cardIds = $.map(self.cardsHS, function(card) { return card.id; });
|
|
$.each(ids, function(idx, id) {
|
|
var location = cardIds.indexOf(id);
|
|
if (location > -1) {
|
|
cardIds.splice(location, 1);
|
|
if(data[idx] != null){
|
|
self.remplacerCarte(location,data[idx],self.cardsHS);
|
|
cardIds = $.map(self.cardsHS, function(card) { return card.id; });
|
|
}
|
|
else{
|
|
self.cardsHS.splice(location, 1);
|
|
|
|
|
|
}
|
|
|
|
}
|
|
});
|
|
this.displayCardsHS();
|
|
if(self.cardsHS.length === 0){
|
|
alert("you won!");
|
|
}
|
|
},
|
|
|
|
clearCardsHS0: function(ids,data) {
|
|
var self = this;
|
|
this.selectedHS0 = [];
|
|
this.$boardHS0.empty();
|
|
var cardIds = $.map(self.cardsHS0, function(card) { return card.id; });
|
|
$.each(ids, function(idx, id) {
|
|
var location = cardIds.indexOf(id);
|
|
if (location > -1) {
|
|
cardIds.splice(location, 1);
|
|
if(data[idx] != null){
|
|
self.remplacerCarte(location,data[idx],self.cardsHS0);
|
|
cardIds = $.map(self.cardsHS0, function(card) { return card.id; });
|
|
}
|
|
else{
|
|
self.cardsHS0.splice(location, 1);
|
|
|
|
}
|
|
}
|
|
});
|
|
this.displayCardsHS0();
|
|
if(self.cardsHS0.length === 0){
|
|
alert("you won!");
|
|
}
|
|
},
|
|
|
|
|
|
clearCardsHS1: function(ids,data) {
|
|
var self = this;
|
|
this.selectedHS1 = [];
|
|
this.$boardHS1.empty();
|
|
var cardIds = $.map(self.cardsHS1, function(card) { return card.id; });
|
|
$.each(ids, function(idx, id) {
|
|
var location = cardIds.indexOf(id);
|
|
if (location > -1) {
|
|
cardIds.splice(location, 1);
|
|
if(data[idx] != null){
|
|
self.remplacerCarte(location,data[idx],self.cardsHS1);
|
|
cardIds = $.map(self.cardsHS1, function(card) { return card.id; });
|
|
}
|
|
else{
|
|
self.cardsHS1.splice(location, 1);
|
|
|
|
}
|
|
}
|
|
});
|
|
this.displayCardsHS1();
|
|
if(self.cardsHS1.length === 0){
|
|
alert("you won!");
|
|
}
|
|
},
|
|
clearCardsHS2: function(ids,data) {
|
|
var self = this;
|
|
this.selectedHS2 = [];
|
|
this.$boardHS2.empty();
|
|
var cardIds = $.map(self.cardsHS2, function(card) { return card.id; });
|
|
$.each(ids, function(idx, id) {
|
|
var location = cardIds.indexOf(id);
|
|
if (location > -1) {
|
|
cardIds.splice(location, 1);
|
|
if(data[idx] != null){
|
|
self.remplacerCarte(location,data[idx],self.cardsHS2);
|
|
cardIds = $.map(self.cardsHS2, function(card) { return card.id; });
|
|
}
|
|
else{
|
|
self.cardsHS1.splice(location, 1);
|
|
|
|
}
|
|
}
|
|
});
|
|
this.displayCardsHS2();
|
|
if(self.cardsHS2.length === 0){
|
|
alert("you won!");
|
|
}
|
|
},
|
|
|
|
|
|
|
|
increaseScore0: function() {
|
|
this.$score0.html(++this.score0);
|
|
},
|
|
increaseScore: function() {
|
|
this.$score.html(++this.score);
|
|
},
|
|
increaseScore1: function() {
|
|
this.$score1.html(++this.score1);
|
|
},
|
|
|
|
increaseScore2: function() {
|
|
this.$score2.html(++this.score2);
|
|
},
|
|
|
|
increaseScore3: function() {
|
|
this.$score3.html(++this.score3);
|
|
},
|
|
|
|
increaseScore4: function() {
|
|
this.$score4.html(++this.score4);
|
|
},
|
|
increaseScoreHS: function() {
|
|
this.$scoreHS.html(++this.scoreHS);
|
|
},
|
|
increaseScoreHS0: function() {
|
|
this.$scoreHS0.html(++this.scoreHS0);
|
|
},
|
|
increaseScoreHS1: function() {
|
|
this.$scoreHS1.html(++this.scoreHS1);
|
|
},
|
|
increaseScoreHS2: function() {
|
|
this.$scoreHS2.html(++this.scoreHS2);
|
|
},
|
|
|
|
|
|
startRound: function() {
|
|
// todo
|
|
// reset timer to 30 seconds
|
|
},
|
|
|
|
gameWon: function() {
|
|
alert("you won!");
|
|
},
|
|
|
|
gameLost: function() {
|
|
alert("you lost :(");
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
Game.deal();
|
|
|
|
|
|
/*
|
|
var canvases = document.getElementsByClassName(' red solid');
|
|
|
|
console.log(canvases);
|
|
for (let canvas of canvases) {
|
|
console.log(canvas);
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
var canvases = $('.red');
|
|
console.log(canvases);
|
|
|
|
canvases.each(function(i, c) {
|
|
var context = c.getContext('2d');
|
|
console.log(c);
|
|
|
|
drawDiamond(context, 50, 50, 75, 100);
|
|
context.fillStyle = "red";
|
|
context.fill();
|
|
});
|
|
|
|
function drawDiamond(context, x, y, width, height){
|
|
context.save();
|
|
context.beginPath();
|
|
context.moveTo(x, y);
|
|
// top left edge
|
|
context.lineTo(x - width / 2, y + height / 2);
|
|
// bottom left edge
|
|
context.lineTo(x, y + height);
|
|
// bottom right edge
|
|
context.lineTo(x + width / 2, y + height / 2);
|
|
|
|
// closing the path automatically creates
|
|
// the top right edge
|
|
context.closePath();
|
|
|
|
|
|
context.restore();
|
|
}
|
|
|
|
/*
|
|
var canvases = $( ".red" );
|
|
|
|
for (let canvas of canvases) {
|
|
var ctx = canvas.getContext('2d');
|
|
ctx.fillStyle = 'red';
|
|
ctx.fillRect(10, 10, 100, 100);
|
|
}
|
|
|
|
/*
|
|
var canvases = document.getElementsByClassName('shape diamond red solid');
|
|
console.log(canvases);
|
|
for (let canvas of canvases) {
|
|
var context = canvas.getContext('2d');
|
|
|
|
drawDiamond(context, 50, 50, 75, 100);
|
|
canvas.fillStyle("#FF0000");
|
|
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
}
|
|
|
|
|
|
function drawDiamond(context, x, y, width, height){
|
|
context.save();
|
|
context.beginPath();
|
|
context.moveTo(x, y);
|
|
// top left edge
|
|
context.lineTo(x - width / 2, y + height / 2);
|
|
// bottom left edge
|
|
context.lineTo(x, y + height);
|
|
// bottom right edge
|
|
context.lineTo(x + width / 2, y + height / 2);
|
|
|
|
// closing the path automatically creates
|
|
// the top right edge
|
|
context.closePath();
|
|
|
|
context.fillStyle = "red";
|
|
context.fill();
|
|
context.restore();
|
|
}*/ |