Próbuję stworzyć generator słów po danym alfabecie iteracyjnie bo nie wiem jak się wziąć za rekurencyjny ale widzę że jestem w ciemnej uliczce bo gdy alfabet będzie miał więcej niż 10 liter to moje podejście nie będzie działało i chyba powinienem całkowicie zmienić podejście ale nie wiem jak zacząć
public
class Message
{
private
char[] alfabet; // abc
private
int[] haslo; // 000=aaa, 001=aab
private
int n; // dlugosc slowa
private
int L;
public
Message(char[] alfabet, int[] haslo, int n, int L)
{
this.alfabet = alfabet;
this.haslo = haslo;
this.n = n;
this.L = L;
}
void haslogen(int n, int L, int level, int[] alfabet, int[] haslo)
{
if (level == n) {
haslo[level] = 0;
System.out.println("haslo");
} else {
for (int i = 0; i < L; i++) {
haslo[level] = i;
haslogen(n, L, level + 1, alfabet, haslo);
}
}
}
void haslo_next(int n, int L, char[] alfabet, int[] haslo)
{
// slowo wykorzystalo alfabet
Boolean flaga = false;
for (int i = 0; i < n; ++i)
if (haslo[i] != n) {
flaga = false;
break;
} else {
try {
flaga = true;
throw new GenNoweHaslo("nowe haslo");
} catch (GenNoweHaslo ex) {
Logger.getLogger(Message.class.getName()).log(Level.SEVERE, null, ex);
}
}
StringBuilder sb = new StringBuilder();
// zwiekszanie hasla
for (int i = 0; i < n; ++i)
sb.append(haslo[i]);
int slowo = Integer.parseInt(sb.toString());
++slowo;
// ukladanie hasla na czyetlna forme
for (int i = 0; i < n; ++i)
sb.append(alfabet[haslo[i]]);
String myString = "1234";
int foo = Integer.parseInt(myString);
if (haslo[])
}
}
tzn wyprowadzanie nowych słów jeszcze nie działa ale i tak by działało dla 9 liter alfabetu