lundi 24 octobre 2016

How can I simplify my javascript code in order to have less loops and if statements?

So I have an assingment to do in which we basically need to write a program that decrypts the following: UNE + DEMI + FINALE = FACILE. The program should assign one digit to each letter. No letter will have two digits and no digit will be assigned to 2 letters. However, I don`t want any help with the logic part of how to do the decryption. If I did that wrong, I want to figure it out for myself. The part I am struggling with if the bulkiness of my code. I have about 10 for-loops within which there are 11 if-statements.

for (var U = 1; U < 10; U = U + 1) {
  for (var N = 0; N < 10; N = N + 1) {
    for (var E = 0; E < 10; E = E + 1) {
      for (var D = 1; D < 10; D = D + 1) {
        for (var M = 0; M < 10; M = M + 1) {
          for (var I = 0; I < 10; I = I + 1) {
            for (var F = 1; F < 10; F = F + 1) {
              for (var A = 0; A < 10; A = A + 1) {
                for (var L = 0; L < 10; L = L + 1) {
                  for (var C = 0; C < 10; C = C + 1) {
                    var mot1 = U + N + E;
                    var mot2 = D + E + M + I;
                    var mot3 = F + I + N + A + L + E;
                    var mot4 = F + A + C + I + L + E;
                    if (U != N && U != E && U != D && U != M && U != I && U != F && U != A && U != L && U != C) {
                      if (N != E && N != D && N != M && N != I && N != F && N != A && N != L && N != C) {
                        if (E != D && E != M && E != I && E != F && E != A && E != L && E != C) {
                          if (D != M && D != I && D != F && D != A && D != L && D != C) {
                            if (M != I && M != F && M != A && M != L && M != C) {
                              if (I != F && I != A && I != L && I != C) {
                                if (F != A && F != L && F != C) {
                                  if (A != L && A != C) {
                                    if (L != C) {
                                      if ((mot1 + mot2 + mot3) == mot4) {
                                        alert("U = " + U / n + "N = " + N / n + "E = " + E / n + "D = " + D / n + "M = " + M / n + "I = " + I / n + "F = " + F / n + "A = " + A / n + "L = " + L / n + "C = " + C);
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }

                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

The program is never able to finish loading before crashing. Is there a way I could simplify it and make it actually work?

Thanks in advance!

Aucun commentaire:

Enregistrer un commentaire