O objetivo dessa classe, é encontrar quando dois ou quatro (tres e cinco não precisa) das posições do vetor tem o mesmo valor.
Apesar de algumas vezes indicar corretamente quando são encontrado 4 com valores iguais, algumas vezes dá o resultado errado.
Ainda não terminei de codar para encontrar dois valores iguais, mas sem saber onde está o erro, fico com receio de continuar e depois ter de refazer tudo.
public String[] Combine(int[] dGem){
String[] dGemComb = new String[2];
int GemAB = 0, GemAC = 0, GemAD = 0 , GemAE = 0;
int GemBC = 0, GemBD = 0 , GemBE = 0;
int GemCD = 0 , GemCE = 0;
int GemDE = 0;
int GemABCD = 0, GemABCE = 0, GemACDE = 0, GemABDE = 0;
int GemBCDE = 0;
// Compares to Gem A
if ( dGem[0] == dGem[1])
GemAB = 1;
if ( dGem[0] == dGem[2])
GemAC = 1;
if ( dGem[0] == dGem[3])
GemAD = 1;
if ( dGem[0] == dGem[4])
GemAE = 1;
// Compares to Gem B
if ( dGem[1] == dGem[2])
GemBC = 1;
if ( dGem[1] == dGem[3])
GemBD = 1;
if ( dGem[1] == dGem[4])
GemBE = 1;
// Compares to Gem C
if ( dGem[2] == dGem[3])
GemCD = 1;
if ( dGem[2] == dGem[4])
GemCE = 1;
// Compares to Gem D
if ( dGem[3] == dGem[4])
GemDE = 1;
if ( (GemAB == GemBC) && (GemAB == GemCD)) //A, B, C e D são iguais
GemABCD = 1;
if ( (GemAB == GemBC) && (GemAB == GemCE))
GemABCE = 1;
if ( (GemAC == GemCD) && (GemAC == GemDE))
GemACDE = 1;
if ( (GemBC == GemCD) && (GemBC == GemDE))
GemBCDE = 1;
if ( (GemAB == GemBD) && (GemAD == GemDE))
GemABDE = 1;
if (GemABCD == 1 ^ GemABCE == 1 ^ GemACDE == 1 ^ GemABDE == 1 )
{
dGemComb[1] = "";
switch (dGem[0]) {
case 0 : dGemComb[0] = "Amethyst"; break;
case 1 : dGemComb[0] = "Aquamarine"; break;
case 2 : dGemComb[0] = "Diamond"; break;
case 3 : dGemComb[0] = "Emerald"; break;
case 4 : dGemComb[0] = "Opal"; break;
case 5 : dGemComb[0] = "Ruby"; break;
case 6 : dGemComb[0] = "Topaz"; break;
case 10 : dGemComb[0] = "Flawless Amethyst"; break;
case 11 : dGemComb[0] = "Flawless Aquamarine"; break;
case 12 : dGemComb[0] = "Flawless Diamond"; break;
case 13 : dGemComb[0] = "Flawless Emerald"; break;
case 14 : dGemComb[0] = "Flawless Opal"; break;
case 15 : dGemComb[0] = "Flawless Ruby"; break;
case 16 : dGemComb[0] = "Flawless Topaz"; break;
case 20 : dGemComb[0] = "Perfect Amethyst"; break;
case 21 : dGemComb[0] = "Perfect Aquamarine"; break;
case 22 : dGemComb[0] = "Perfect Diamond"; break;
case 23 : dGemComb[0] = "Perfect Emerald"; break;
case 24 : dGemComb[0] = "Perfect Opal"; break;
case 25 : dGemComb[0] = "Perfect Ruby"; break;
case 26 : dGemComb[0] = "Perfect Topaz"; break;
case 30 : dGemComb[0] = "Great Amethyst"; break;
case 31 : dGemComb[0] = "Great Aquamarine"; break;
case 32 : dGemComb[0] = "Great Diamond"; break;
case 33 : dGemComb[0] = "Great Emerald"; break;
case 34 : dGemComb[0] = "Great Opal"; break;
case 35 : dGemComb[0] = "Great Ruby"; break;
case 36 : dGemComb[0] = "Great Topaz"; break;
default: dGemComb[0] = "";
}
}
else if (GemBCDE == 1) {
dGemComb[1] = "";
switch (dGem[1]) {
case 0 : dGemComb[0] = "Amethyst"; break;
case 1 : dGemComb[0] = "Aquamarine"; break;
case 2 : dGemComb[0] = "Diamond"; break;
case 3 : dGemComb[0] = "Emerald"; break;
case 4 : dGemComb[0] = "Opal"; break;
case 5 : dGemComb[0] = "Ruby"; break;
case 6 : dGemComb[0] = "Topaz"; break;
case 10 : dGemComb[0] = "Flawless Amethyst"; break;
case 11 : dGemComb[0] = "Flawless Aquamarine"; break;
case 12 : dGemComb[0] = "Flawless Diamond"; break;
case 13 : dGemComb[0] = "Flawless Emerald"; break;
case 14 : dGemComb[0] = "Flawless Opal"; break;
case 15 : dGemComb[0] = "Flawless Ruby"; break;
case 16 : dGemComb[0] = "Flawless Topaz"; break;
case 20 : dGemComb[0] = "Perfect Amethyst"; break;
case 21 : dGemComb[0] = "Perfect Aquamarine"; break;
case 22 : dGemComb[0] = "Perfect Diamond"; break;
case 23 : dGemComb[0] = "Perfect Emerald"; break;
case 24 : dGemComb[0] = "Perfect Opal"; break;
case 25 : dGemComb[0] = "Perfect Ruby"; break;
case 26 : dGemComb[0] = "Perfect Topaz"; break;
case 30 : dGemComb[0] = "Great Amethyst"; break;
case 31 : dGemComb[0] = "Great Aquamarine"; break;
case 32 : dGemComb[0] = "Great Diamond"; break;
case 33 : dGemComb[0] = "Great Emerald"; break;
case 34 : dGemComb[0] = "Great Opal"; break;
case 35 : dGemComb[0] = "Great Ruby"; break;
case 36 : dGemComb[0] = "Great Topaz"; break;
default: dGemComb[0] = "";
}
}
return dGemComb;
}
