Devi farlo per forza con gli array?
Ho fatto questo io:
int lunghezza = 5;
//String soluzione = "12345";
String soluzione = "";
for (int i = 0; i < lunghezza; i++) {
soluzione += "0123456789".toCharArray()[new Random().nextInt("0123456789".toCharArray().length)];
}
System.out.println(soluzione);
int tentativi = 0;
String tentativo = null;
boolean finito = false;
while (!finito) {
try {
int numeri_indovinati = 0;
int somma = 0;
tentativo = JOptionPane.showInputDialog("Inserisci " + lunghezza + " cifre.");
for (int i = 0; i < soluzione.length(); i++) {
if (tentativo.charAt(i) == soluzione.charAt(i)) {
numeri_indovinati++;
somma += Integer.parseInt(tentativo.charAt(i) + "");
}
}
System.out.println("Hai indovinato " + numeri_indovinati + " numeri.");
System.out.println("La somma dei numeri indovinati è di " + somma);
if (numeri_indovinati == soluzione.length()) {
System.out.println("Soluzione: " + soluzione + " in " + tentativi + " tentativi.");
finito = true;
}
tentativi++;
} catch (Exception e) {
//nel caso una persona inserisca 4 cifre al posto che 5 ad esempio.
}
}
È un po' incasinato, spero si capisca.