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
- Host: GitHub
- URL: https://github.com/andersonhsporto/taygeta-cli
- Owner: andersonhsporto
- License: gpl-3.0
- Created: 2022-08-29T18:06:08.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-12-01T20:22:21.000Z (over 2 years ago)
- Last Synced: 2025-01-17T05:28:55.607Z (3 months ago)
- Topics: docker, java, java-19, junit, junit5, marsroverproblem, marsrovertechchallenge, maven, unit-testing
- Language: Java
- Homepage:
- Size: 19.9 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Taygeta CLI
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`).
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.
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.*
Os comandos `list` exibem informações sobre as sondas e planetas cadastrados.
Utilize o comando `help` ou `?` para exibir uma lista com todos os comandos disponíveis.
Utilize o comando `undo` para desfazer o comando atual ou caso queira encerrar a aplicação utilize o comando `exit`.
Minhas Informações de contato 📬