Bonjours a tous.

Je galère sévère sur la création d'un boucle pour une addition ....

Je m'explique:

J'ai un tableau (de taille max 9) sur une dimension du genre:

var Liste:Array =new Array(2,4,5); //Pour exemple

et je veut la liste de toute les possibilité d'addition soit:
2 + 4 = 6
2 + 5 = 7
4 + 5 = 9
2 + 4 + 5 = 11

sur un tableau de trois c'est facile, deux boucle imbrique plus l'addition suffisent mais lorsque le tableau possède 9 élément comment faire...

j'avais commencer par quelque chose comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
switch (ListeCarteTest.length){
	case 2:
		//2 cartes
		lCart = ListeCarteTest[0];
		lCart2 = ListeCarteTest[1];
		lCart3 = ListeCarteTest[2];
		lVal.push(int(lCart.ValCarte) + int(lCart2.ValCarte));
		if (lVal[0] == 11){
			lBoOk = true;
		}
		break;
 
	case 3:
		//3 cartes;			
		lCart = ListeCarteTest[0];
		lCart2 = ListeCarteTest[1];
		lCart3 = ListeCarteTest[2];
		lVal.push(int(lCart.ValCarte) + int(lCart2.ValCarte));
		lVal.push(int(lCart.ValCarte) + int(lCart3.ValCarte));
		lVal.push(int(lCart2.ValCarte) + int(lCart3.ValCarte));
		lVal.push(int(lCart.ValCarte) + int(lCart2.ValCarte) + int(lCart3.ValCarte));
		if (lVal.indexOf(11) != -1){
			lBoOk = true;
		}
		break;
 
	case 4:
		//4 cartes;			
		lCart = ListeCarteTest[0];
		lCart2 = ListeCarteTest[1];
		lCart3 = ListeCarteTest[2];
		lCart4 = ListeCarteTest[3];
		//Les paire
		lVal.push(int(lCart.ValCarte) + int(lCart2.ValCarte));
		lVal.push(int(lCart.ValCarte) + int(lCart3.ValCarte));
		lVal.push(int(lCart.ValCarte) + int(lCart4.ValCarte));
		lVal.push(int(lCart2.ValCarte) + int(lCart3.ValCarte));
		lVal.push(int(lCart2.ValCarte) + int(lCart4.ValCarte));
		lVal.push(int(lCart3.ValCarte) + int(lCart4.ValCarte));
		//les triple
		lVal.push(int(lCart.ValCarte) + int(lCart2.ValCarte) + int(lCart3.ValCarte));
		lVal.push(int(lCart.ValCarte) + int(lCart3.ValCarte) + int(lCart4.ValCarte));
		lVal.push(int(lCart2.ValCarte) + int(lCart3.ValCarte) + int(lCart4.ValCarte));
		//Les quadrplie
		lVal.push(int(lCart.ValCarte) + int(lCart2.ValCarte) + int(lCart3.ValCarte) + int(lCart4.ValCarte));
		if (lVal.indexOf(11) != -1){
			lBoOk = true;
		}
		break;
 
}
Mais ca devient trop lours ....(Oui, en fait c'est des carte que je manipule mais le principe est le meme )


Si quelqu'un a une idée merci d'avance