19-01-2013, 03:48 PM
(19-01-2013, 03:15 PM)Xenos a écrit : Salut,
fait plutôt une fonction qui teste si toutes les couleurs d'une ligne N sont les mêmes, une fonction pour la colonne C, et une pour la diagonale D. Après, boucle 5 fois la 1ere fonction, 5 fois la deuxième, et 2 fois la dernière, ce sera plus soft qu'un énorme switch.
Pour tester si une ligne est d'une couleur, prend le premier pion de la ligne, et compare-le à chacun des autres pions de la ligne (boucle for). Idem pour la colonne et la diagonale.
Après, je pense qu'il y a des solutions en voyant le problème comme une matrice de 5x5, mais traduire la condition des couleurs, je ne sais pas trop comment faire (attribuer un nombre à chaque couleur, ok, mais quelles conditions poser sur ces nombres et sur la matrice pour vérifier les alignements?)
Oui c'est ce que j'appelle tester tous les cas :
Code :
function rowCheck(index){
switch(index){
case 0 :
case 5 :
case 10:
case 15:
case 20:
if(gbd[index].data('c')===gbd[index+1].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+2].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+3].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+4].data('c')){gameLoss=true;break;};
break;
case 1 :
case 6 :
case 11:
case 16:
case 21:
if(gbd[index].data('c')===gbd[index-1].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+1].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+2].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+3].data('c')){gameLoss=true;break;};
break;
case 2 :
case 7 :
case 12:
case 17:
case 22:
if(gbd[index].data('c')===gbd[index-2].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index-1].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+1].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+2].data('c')){gameLoss=true;break;};
break;
case 3 :
case 8 :
case 13:
case 18:
case 23:
if(gbd[index].data('c')===gbd[index-3].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index-2].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index-1].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+1].data('c')){gameLoss=true;break;};
break;
case 4 :
case 9 :
case 14:
case 19:
case 24:
if(gbd[index].data('c')===gbd[index-4].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index-3].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index-2].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index-1].data('c')){gameLoss=true;break;};
break;
};
};
function colCheck(index){
switch(index){
case 0 :
case 1 :
case 2:
case 3:
case 4:
if(gbd[index].data('c')===gbd[index+5].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+10].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+15].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+20].data('c')){gameLoss=true;break;};
break;
case 5 :
case 6 :
case 7:
case 8:
case 9:
if(gbd[index].data('c')===gbd[index-5].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+5].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+10].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+15].data('c')){gameLoss=true;break;};
break;
case 10 :
case 11 :
case 12:
case 13:
case 14:
if(gbd[index].data('c')===gbd[index-10].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index-5].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+5].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+10].data('c')){gameLoss=true;break;};
break;
case 15 :
case 16 :
case 17:
case 18:
case 19:
if(gbd[index].data('c')===gbd[index-15].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index-10].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index-5].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index+5].data('c')){gameLoss=true;break;};
break;
case 20 :
case 21 :
case 22:
case 23:
case 24:
if(gbd[index].data('c')===gbd[index-20].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index-15].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index-10].data('c')){gameLoss=true;break;};
if(gbd[index].data('c')===gbd[index-5].data('c')){gameLoss=true;break;};
break;
};
};
function diaCheck(index){
switch(index){
case 0 :
if(gbd[0].data('c')===gbd[6].data('c')){gameLoss=true;break;};
if(gbd[0].data('c')===gbd[12].data('c')){gameLoss=true;break;};
if(gbd[0].data('c')===gbd[18].data('c')){gameLoss=true;break;};
if(gbd[0].data('c')===gbd[24].data('c')){gameLoss=true;break;};
break;
case 6 :
if(gbd[6].data('c')===gbd[0].data('c')){gameLoss=true;break;};
if(gbd[6].data('c')===gbd[12].data('c')){gameLoss=true;break;};
if(gbd[6].data('c')===gbd[18].data('c')){gameLoss=true;break;};
if(gbd[6].data('c')===gbd[24].data('c')){gameLoss=true;break;};
break;
case 12 :
if(gbd[12].data('c')===gbd[0].data('c')){gameLoss=true;break;};
if(gbd[12].data('c')===gbd[6].data('c')){gameLoss=true;break;};
if(gbd[12].data('c')===gbd[18].data('c')){gameLoss=true;break;};
if(gbd[12].data('c')===gbd[24].data('c')){gameLoss=true;break;};
if(gbd[12].data('c')===gbd[4].data('c')){gameLoss=true;break;};
if(gbd[12].data('c')===gbd[8].data('c')){gameLoss=true;break;};
if(gbd[12].data('c')===gbd[16].data('c')){gameLoss=true;break;};
if(gbd[12].data('c')===gbd[20].data('c')){gameLoss=true;break;};
break;
case 18 :
if(gbd[18].data('c')===gbd[0].data('c')){gameLoss=true;break;};
if(gbd[18].data('c')===gbd[6].data('c')){gameLoss=true;break;};
if(gbd[18].data('c')===gbd[12].data('c')){gameLoss=true;break;};
if(gbd[18].data('c')===gbd[24].data('c')){gameLoss=true;break;};
break;
case 24 :
if(gbd[24].data('c')===gbd[0].data('c')){gameLoss=true;break;};
if(gbd[24].data('c')===gbd[6].data('c')){gameLoss=true;break;};
if(gbd[24].data('c')===gbd[12].data('c')){gameLoss=true;break;};
if(gbd[24].data('c')===gbd[18].data('c')){gameLoss=true;break;};
break;
case 4 :
if(gbd[4].data('c')===gbd[8].data('c')){gameLoss=true;break;};
if(gbd[4].data('c')===gbd[12].data('c')){gameLoss=true;break;};
if(gbd[4].data('c')===gbd[16].data('c')){gameLoss=true;break;};
if(gbd[4].data('c')===gbd[20].data('c')){gameLoss=true;break;};
break;
case 8 :
if(gbd[8].data('c')===gbd[4].data('c')){gameLoss=true;break;};
if(gbd[8].data('c')===gbd[12].data('c')){gameLoss=true;break;};
if(gbd[8].data('c')===gbd[16].data('c')){gameLoss=true;break;};
if(gbd[8].data('c')===gbd[20].data('c')){gameLoss=true;break;};
break;
case 16 :
if(gbd[16].data('c')===gbd[4].data('c')){gameLoss=true;break;};
if(gbd[16].data('c')===gbd[8].data('c')){gameLoss=true;break;};
if(gbd[16].data('c')===gbd[12].data('c')){gameLoss=true;break;};
if(gbd[16].data('c')===gbd[20].data('c')){gameLoss=true;break;};
break;
case 20 :
if(gbd[20].data('c')===gbd[4].data('c')){gameLoss=true;break;};
if(gbd[20].data('c')===gbd[8].data('c')){gameLoss=true;break;};
if(gbd[20].data('c')===gbd[12].data('c')){gameLoss=true;break;};
if(gbd[20].data('c')===gbd[16].data('c')){gameLoss=true;break;};
break;
};
};
je cherche un autre algo que celui là