V mojom programe Java mám pole String polí String, ktoré obsahujú každá 3 hodnoty.
String[][] actions =
{
new String[]{"R", "R"", "R2"},
new String[]{"L", "L"", "L2"},
new String[]{"D", "D"", "D2"},
new String[]{"U", "U"", "U2"},
new String[]{"F", "F"", "F2"},
new String[]{"B", "B"", "B2"}
};
Teraz nechávam randomizér vybrať 25 hodnôtz týchto polí náhodným výberom a uložením výsledkov do normálneho poľa String (nech to nazveme výsledkami). Teraz chcem skontrolovať, či je hodnota 0 vo výsledkoch obsiahnutá v rovnakom poli ako hodnota 1, to znamená, ak je hodnota 0 „U“ „a hodnota 1 je„ U “„ mala by znovu presunúť randomizátor pre hodnotu 1, ignorujúc hodnotu poľa 0 in. Nakoniec by som chcela mať pole reťazcov, kde žiadny reťazec nie je v rovnakom poli ako jeho nasledujúci.
odpovede:
0 pre odpoveď č. 1Na základe vášho komentára by ste možno hľadali niečo také?
public void mainMethod() {
...
for(int i=0; i<(results.length-1); i++) {
compare(results, i);
}
}
private void compare(String[] results, int index) {
// compare if both values are in the same array
if(getRowIndex(results[index]) == getRowIndex(results[index+1])) {
reRoll(results, (index+1)); // reroll if so
compare(results, index); // revalidate in case it re-rolls to the same array value
}
}
private void reRoll(String[] results, int index) {
//TODO
}
private void getRowIndex(...) {
//TODO
}
Posledné dve metódy sú na tom, ako to chcete implementovať. Existuje mnoho spôsobov ...