Giter Site home page Giter Site logo

simuladortrafegomalhaviaria's Introduction

Logo da UDESC Alto Vale


Simulador de Malha viária

Atividade desenvolvida para a disciplina de Desenvolvimento de Sistemas Paralelos e Distribuídos do Centro de Educação Superior do Alto Vale do Itajaí (CEAVI/UDESC)

Sumário

Desenvolver um simulador de tráfego. Neste simulador há veículos que se movem pelas vias de uma malha viária. A malha é informada através de arquivo.

Especificação dos Veículos

a) Cada veículo deve ser um thread.
b) O veículo se movimenta pela malha, uma posição por vez, respeitando o sentido de fluxo dapista. O veículo só pode se mover caso a posição à frente esteja livre.
c) Ao se deparar com um cruzamento:

  • Deve escolher, aleatoriamente, uma das vias de saída do cruzamento para seguir. Aescolha deve ser feita antes do veículo ingressar no cruzamento.

d) Só deve se mover pelo cruzamento se todas as posições por onde vai passar estiverem totalmente livres (exclusão mútua).
e) Não deve bloquear o cruzamento de outros veículos (ficar parado no cruzamento).
f) Novos veículos são inseridos nos pontos de entrada da malha (ver especificação da malha).
g) Ao atingir um ponto de saída (ver especificação da malha), o veículo deve ser encerrado.
h) Veículos possuem velocidades de movimentação diferente (tempo de sleep a cada passo).

Especificação da Malha Viária

a) Deve ser carregada de um arquivo texto.
b) Nas duas primeiras linhas estão a quantidade de linhas e colunas da malha, respectivamente.
c) As próximas linhas especificam o tipo de cada segmento (célula) da malha:

image

d) Características gerais das vias:

  • São sempre horizontais ou verticais (não haverá vias em diagonal).
  • São de mão dupla (ou seja, possuem duas pistas).
  • Nas bordas, só haverá vias perpendiculares.
  • Entre vias paralelas, haverá sempre ao menos uma linha ou coluna em branco (ou seja,não haverá vias “grudadas” umas nas outras).
    e) Identificação de pontos de entrada e de saída de veículos:
  • Entrada: posição inicial da pista que está em uma das bordas da malha.
  • Saída: posição final da pista que está em uma das bordas da malha.
    f) Exemplo de malha e arquivo:

image

Especificação Geral do Sistema

a) A malha e os veículos devem ser visualizados em uma interface gráfica.
b) Deve possuir opções para:

  1. limitar quantidade de veículos: usuário informar a quantidade máxima de veículos que poderão estar circulando simultaneamente na malha. O sistema fica inserindo veículos até atingir esta quantidade. Assim que veículos sairem da malha, novos veículos devem ser inseridos para manter a quantidade máxima de circulando simultaneamente.
    [opcional] usuário informar um intervalo de inserção de veículos (de quanto em quanto tempo um veículo é inserido).
  2. iniciar simulação: fica inserindo veículos, que se movimentam na malha, respeitando a quantidade descrita anteriormente no item (1).
  3. encerrar simulação: para de inserir e encerra imediatamente todos os veículos.
    [opcional] encerrar e aguardar veículos saírem da malha.

c) Deve suportar tanto semáforos quanto monitores. Deve haver uma opção para o usuário escolher qual destes mecanismos será utilizado.

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.