Percursos
/
Java
Java
/
Exercícios
/
Ratinhos no labirinto
Ratinhos no labirinto

Ratinhos no labirinto

Difícil

Introdução

Conhece o Mickey e a Minerva, dois ratos espertos que adoram percorrer um labirinto à procura de queijo. Gostam de um bom desafio, mas, com apenas os seus pequenos cérebros de rato, preferem que haja só um caminho correto até ao queijo.

Instruções

A tua tarefa é gerar os labirintos perfeitos para o Mickey e a Minerva: aqueles que têm apenas uma solução e nenhuma secção isolada. Eis o que precisas de saber:

  • O labirinto tem uma forma retangular, com uma abertura no início e no fim.
  • O labirinto tem salas e passagens, que se cruzam em ângulos retos.
  • O programa deve aceitar dois parâmetros: linhas e colunas. O labirinto deve ter entre 5 e 100 células.
  • Um labirinto com x colunas de largura e y linhas de altura deve ter 2x + 1 carateres de largura e 2y + 1 carateres de altura.
  • Se não for fornecida nenhuma semente, gera um labirinto aleatório. Se a mesma semente for fornecida várias vezes, o labirinto resultante deve ser o mesmo de cada vez.
  • Usa carateres de desenho de caixa para desenhar as paredes e um símbolo de seta (⇨) para a entrada, à esquerda, e para a saída, à direita.

Está na hora de criares labirintos perfeitos para estes ratos aventureiros!

Exemplos

  1. Um labirinto quadrado pequeno, com 5x5 células (ou 11x11 carateres)

    ┌───────┬─┐
    │       │ │
    │ ┌─┬── │ │
    │ │ │   │ ⇨
    │ │ │ ──┤ │
    ⇨ │ │   │ │
    ┌─┤ └── │ │
    │ │     │ │
    │ │ ────┘ │
    │         │
    └─────────┘
    
  2. Um labirinto retangular com 6x18 células

    ┌───────────┬─────────┬───────────┬─┐
    │           │         │           │ │
    │ ┌───────┐ │ ┌─┐ ──┐ └───┐ ┌───┐ │ │
    │ │       │ │ │ │   │     │ │   │   ⇨
    │ └─┐ ┌─┐ │ │ │ ├── ├───┐ │ │ ──┼── │
    │   │ │ │   │   │   │   │ │ │   │   │
    └── │ │ ├───┴───┤ ┌─┘ ┌─┘ │ ├── │ ──┤
    ⇨   │   │       │ │   │   │ │   │   │
    ┌─┬─┴─┐ └─┐ ┌─┐ │ └─┐ │ ┌─┘ │ ──┴─┐ │
    │ │   │   │ │ │ │   │   │   │     │ │
    │ │ │ └── │ │ │ └── │ ──┘ ┌─┘ ──┐ │ │
    │   │       │       │     │     │   │
    └───┴───────┴───────┴─────┴─────┴───┘
    
Editar via GitHub A ligação abre numa nova janela ou separador
Java Exercism

Estás pronto para começar Ratinhos no labirinto?

Inscreve-te no Exercism para aprenderes e dominares Java com 26 conceitos158 exercícios, e mentoria humana real, tudo grátis.