1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como criar uma sequência aleatória a partir de arrays que se restringem entre si quanto aos índices e posições específicas dos elementos declarados?

Bem pessoal, tô fazendo um código que gera sequências a partir de arrays de String. Consegui fazer ele gerar a sequência normal, mas preciso que gere um tipo específico de sequência aleatória. No caso meu código vai fazendo vários sorteios até achar uma condição que o satisfaça, então se ele gerar um item que esteja OK ele sorteia outro, caso contrário sorteia de novo até aparecer um que está certo. Meu método tá assim:

        String[] moves1 = {"F", "B", "U", "D", "R", "L"};
        String[] moves2 = {" ", "' "};

        Random r = new Random();

        String s = "";
        String f = "";

        for (int i = 0; i < 26; i++) {

            do {
                f = moves1[r.nextInt(6)];

            } while (f == s);
            s = f;
            System.out.print(s);

            String u = moves2[r.nextInt(2)];
            System.out.print(u);

        }

    }

}

Obs.: O vetor "moves2" é referente a outra ação do programa.

Bem, o que eu preciso é basicamente que o programa NÃO GERE em sua composição:

  • "F" depois de "F B" ou "B" depois de "B F";
  • "U" depois de "U D" ou "D" depois de "D U";
  • "R" depois de "R L" ou "L" depois de "L R";

Como exemplo, não podem ser geradas trechos de sequências como:

  • "...B F B..." ou "...F B F...";
  • "...U D U..." ou "...D U D...";
  • "...R L R..." ou "...L R L...";

Considerando que a sequência tem que ter 25 itens num print, a última restrição é que não podem aparecer dois itens IGUAIS SEGUIDOS, como F F, B B, R R, D D, U U ou L L.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java random arrays ou faça a sua própria pergunta.