An open API service indexing awesome lists of open source software.

https://github.com/andersonhsporto/taygeta-cli

Variação do Desafio "Mars Rover" em Java
https://github.com/andersonhsporto/taygeta-cli

docker java java-19 junit junit5 marsroverproblem marsrovertechchallenge maven unit-testing

Last synced: about 2 months ago
JSON representation

Variação do Desafio "Mars Rover" em Java

Awesome Lists containing this project

README

        

# Taygeta CLI


Taygeta Star

Taygeta é uma [interface de linha de comando](https://en.wikipedia.org/wiki/Command-line_interface)
que implementa uma variação do desafio [Mars Rover](https://code.google.com/archive/p/marsrovertechchallenge/), utilizando a
linguagem JAVA.

## Ferramentas Utilizadas

* [JAVA 18](https://www.java.com/pt-BR/) - Linguagem de programação (JDK 18).
* [Apache Maven 3.8.6](https://maven.apache.org/) - Gerenciador de dependências.
* [IntelliJ](https://www.jetbrains.com/idea/) - IDE para desenvolvimento.
* [Docker](https://www.docker.com/) - Serviço de virtualização.

## Inicialização

Para executar o projeto é necessário gerar o artefato *.jar*, uma forma de executar essa ação no linux é utilizando o comando:

```sh
mvn package
```

Este comando irá gerar um *.jar* de nome `Taygeta-cli-1.0-SNAPSHOT.jar`, para executar este artefato basta utilizar o comando:

```sh
java -jar Taygeta-cli-1.0-SNAPSHOT.jar
```

### Docker

Para executar este projeto no docker, basta utilizar o seguinte comando para gerar uma imagem deste projeto:

```sh
docker build -t taygeta --build-arg JAR_FILE=Taygeta-cli-1.0-SNAPSHOT .
```

Este comando irá gerar uma imagem com o nome `taygeta`, para visualizar o projeto no contêiner basta utilizar o comando:

```sh
docker run -it --rm taygeta
```

### Lista de Comandos
Comando | Definição
---|---------
`add-planet` | Adicionar novo planeta
`add-probe` | Adicionar sonda a um planeta existente
`move-probe` | Mover sonda existente
`list all` ou `list total` | Listar todos os planetas e suas respectivas sondas
`list planets` ou `list planet` | Listar todos os planetas
`list probes` ou `list probe` | Listar todas as sondas
`undo` | Desfazer comando atual
`help` ou `?` | Exibir lista de comandos
`exit`| Encerrar o programa

### Exemplos:

Para adicionar um planeta é necessário utilizar o comando `add-planet` e inserir a altura e largura
do retângulo que representa a área deste planeta, utilizando o caractere x como delimitador (exemplo: `10x10`).


add-planet

Para adicionar uma sonda a um planeta previamente cadastrado é necessário utilizar o comando `add-probe`, este comando irá solicitar o ID do planeta, coordenada x, coordenada y e o [ponto cardeal](https://pt.wikipedia.org/wiki/Ponto_cardeal) em inglês ou português.


add-probe

Para mover uma sonda previamente cadastrada é necessário usar o comando `move-probe`, este comando irá solicitar o ID do planeta, ID da sonda que será movimentada e a sequência de movimentos:

- `M` -> Mover a sonda uma unidade de área para frente
- `L` -> Virar a sonda para a esquerda (90 graus)
- `R` -> Virar a sonda para a direita (90 graus)

*Observação: se algum destes movimentos resultar em uma colisão o comando é cancelado.*


move-probe

Os comandos `list` exibem informações sobre as sondas e planetas cadastrados.


list-probe

Utilize o comando `help` ou `?` para exibir uma lista com todos os comandos disponíveis.


help

Utilize o comando `undo` para desfazer o comando atual ou caso queira encerrar a aplicação utilize o comando `exit`.


undo




Minhas Informações de contato 📬