Skip to content

Latest commit

 

History

History
96 lines (67 loc) · 3.04 KB

README.md

File metadata and controls

96 lines (67 loc) · 3.04 KB

Batalha de Drones

Projeto para a 1.ª Competição de IA do Departamento de Informática da PUC-Rio

Este é uma cópia do trabalho 4 para INF1771 — Inteligência Artificial, porém dessa vez este trabalho foi escrito em Rust, em vez de Java.

Para acessar a API, troque para a branch public_base

Desenvolvido por Daniel Guimarães

Visualização gráfica dos drones

Descrição

A descrição da competição pode ser encontrada aqui

Este projeto envolve a construção de uma inteligência artificial para competir numa batalha de “drones”.

Requirementos

Para a parte gráfica, também será necessário:

Utilização

Clone o repositório

$ git clone https://github.com/Leinadium/puc-drone-battle-rust
$ cd puc-drone-battle-rust

Edite o config.json conforme a necessidade. A seguir estão as descrições de cada configuração disponível

{
  "name": "nome_do_drone",    // nome do drone
  "url": "example.com",       // url do servidor
  "slow_timer": 1000,         // maior intervalo de comunicação entre o servidor (ms)
  "normal_timer": 100,        // intervalo de comunicação padrão entre o servidor (ms)
  "min_timer": 100,           // mínimo intervalo de comunicação entre o servidor (ms)
  "default_color": {          // cor do drone, em RGB
    "r": 23,
    "g": 179,
    "b": 132,
    "a": 0    // não usado
  },
  "spawn_timer": 18000,       // tempo de nascimento de um ouro ou powerup (ms)
  "graphics": true            // true para ativar a visualização, false para exibir as informações somente no terminal
}

Compile o programa, e execute, fornecendo como argumento o caminho até esse arquivo. Caso o caminho esteja incorreto, será usada uma configuração padrão.

$ cd drone-battle

# compilando e executando ao mesmo tempo
$ cargo run --release -- ../config.json

# compilando, e depois executando (recomendado)
$ cargo build --release
$ ./target/release/puc-drone-battle-rust ../config.json

Visualização gráfica

Para poder ter uma visualização gráfica do seu drone (e de outros drones seus rodando em paralelo), primeiro é necessário instalar os requerimentos para o Python.

# caso queira iniciar um ambiente virtual
# windows
$ python -m venv venv
$ venv\Scripts\activate
# mac/linux
$ python3 -m venv venv
$ ./venv/bin/activate

# instalando requerimentos
$ cd graphics
$ python -m pip install -r requirements.txt   # python3 e pip3 para mac/linux

Depois, inicie o broker MQTT localmente, e execute o arquivo graphics/main.py

Agora, execute um ou mais drones, com nomes diferentes. Será exibida uma janela do pygame com os drones e suas informações