Competição

Competição

por Rafael Lemes Beirigo -
Número de respostas: 0

Estou tentando listar o quê o robô terá que fazer (andar, descobrir a cor do pino, pegá-lo, soltá-lo, etc.) e em como fazer essas tarefas (algoritmos que poderiam maximizar a eficiência no desempenho geral das atividades).

Achei que não seria ruim colocar algumas idéias aqui, já que podemos discuti-las, ou pensar sobre elas aproveitando também o fórum...

Até agora pensei nessas coisas:

  1. O quê ele vai precisar ser capaz de fazer
    1. caminhar sobre a plataforma (óbvio)
      1. acho que aqui seria legal que o robô tivesse um sensor de luz apontado pro chão e fosse se localizando através dos quadriculados
        1. poderíamos usar alguma estrutura de dados estilo matriz pra plataforma e atualizar nessa matriz a posição do robô, dos quadriculados de rio e de alagamento e dos pinos (colocando também a cor de cada pino)
      2. essa informação poderia ser usada pra localizar o robô na plataforma e medir distâncias
    2. detectar pino (saber que está na frente de um pino)
      1. descobrir a cor do pino
      2. mapear o pino na memória (gravar lá que tem um pino da cor tal no quadrado (i,j). Assim, da próxima vez que um pino dessa cor for necessário, o robô pode ver qual é o mais próximo dele, calculando as distâncias (aqui, como o quadrado é grande, precisamos ver qual seria a melhor forma de calcular essas distâncias...)
    3. detectar água
      1. rio
      2. alagamento
    4. pegar um pino
    5. soltar um pino
    6. não colidir com o outro robô
    7. comunicar-se com o outro robô (dá?)
      1.  dividir a informação de mapeamento atual (posições dos pinos (e cores) e rio/alagamento) 
      2. pedir pra ele trazer um pino (se só tiver um da cor certa no lado dele)
        1. a gente tem q ver a estratégia aqui, porque nesse caso eu to contando que vai ficar um de cada lado, e, se for esse o caso, talvez seja melhor q se ele for vir com o pino, o outro vá pro outro lado e comece a trabalhar lá (pra não ficar ocioso, só esperando enquanto o pino chega...) ou a gente pode fazer ele ficar lá mesmo e trabalhar no próximo pino, tem que pensar qual seria a melhor estratégia...
  2. Como fazer (estratégia)
    1. Bom, eu olhei pro tabuleiro e pensei em um esquema de "ligue-os-pontos": ligar o quadrado que tem o pino da cor certa ao quadrado que tem a água "certa" pra esse pino (dependendo se for alagamento ou rio). A gente pode querer ligar os quadrados minimizando a distância pro robô ter que andar o mínimo possível pra levar o pino pro quadrado da água. Nesse caso, como seria a melhor forma de poder abstrair os dados do problema de forma a usar algum algoritmo de otimização conhecido?
      1. to pensando em algo com grafos e minimização de caminhos, mas ainda preciso pensar mais, tá muito cru ainda

Bom, é isso, espero que isso sirva pra gente poder ir pensando. Lembrando que é só um rascunho bem inicial ainda, e que a gente precisa pensar em muita coisa. Ah, e eu tava pensando em que talvez a gente poderia quebrar em tarefas por grupo, tipo um grupo cuida da movimentação e mapeamento, outro pensa em garras/braços bons pra pegar e soltar o pino, outro do sensoriamento dos pinos e águas, etc. Sobre a estratégia, acho que o melhor é todo mundo ajudar, porque acho que vai ser a parte que mais vai precisar quebrar a cabeça....

Bom, é isso, abraços!