Giter Site home page Giter Site logo

puc-drone-battle-rust's Introduction

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

puc-drone-battle-rust's People

Contributors

leinadium avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.