Giter VIP home page Giter VIP logo

cosmospheres's People

Contributors

adrian1987 avatar angel-manuel avatar charlesp0096 avatar jsevillamol avatar wxalex98 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cosmospheres's Issues

Lassoing module

As the last manual difficult laser strategies and emboost debris strategies it would be very interesting to have a lassoing module ready to work.

La SPHERE pierde mucho tiempo chocando con escombreras

El titulo lo dice todo.

Para arreglarlo se me ha ocurrido lo siguiente:

  1. Se obtienen todas las posiciones de las escombreras
  2. Se triangula con algo así https://en.wikipedia.org/wiki/Delaunay_triangulation aunque en 3D
  3. Cada triangulo es una zona y se toma como un nodo conectado con los triángulos adyacentes. A lo que es lo mismo, se juntan los centros(en principio el circuncentro pero solo si cae dentro del triángulo) de los triángulos y se hace un grafo. El grafo quedaría algo así:
    441px-delaunay_voronoi svg
  4. Se utiliza un algoritmo de pathfinding para recorrer grafos con bastante heurística para que no se eternice como A*

El resultado seria una función a la que le pasas unas coordenadas, consulta en que triángulo cae y te da una ruta entre escombreras.

También seria genial una función que de antemano te estima el coste de ir de A a B y otro más que se encargara de recolectar cierta escombrera sin chocar con las otras.

EDIT: Al parecer los algoritmos para triangular dependen mucha de si se esta en 2D o en 3D o nD, incluso hay algoritmos exclusivos para casos 2D. No se si deberíamos implementar primero los más sencillos independientemente de eso. Otra cosa es que los peores algoritmos son 0(n^2) pero n=10, bastante poco, y todo esto de la triangulación solo necesita ser hecho una vez.

Undecided SPHERE has problems selecting item target

I have been adverted by Ari that in the simulations we go to the opponent's item supply, but instead of picking it the satellite nonsensically starts revolving over it.
Do not give priority to this problem over the item picking one, though.

Añadir información de debugging

Existe una función

void ZeroRoboticsAPI::setDebug(float dbg[7]) ;

Que permite sacar información de numérica para ser luego representada gráficamente.

Propongo usar este función para imprimir información de combustible y otros.

Failing to avoid debris

We need to perfectly avoid debris or try to lasso it, crashing into one of them makes us lose too much fuel.

Escribir una función de control que use setVelocityTarget

Vendría bien escribir una función del estilo

//movement_moveto
//dst -> Destino
//tvel -> Velocidad objetivo
//return -> true si ya se ha llegado, false en todos los demas casos
bool movement_moveto(float dst[3], float tvel[3]);

que internamente llame sobre todo a setVelocity y a setForces

Yo empiezo a intentar algo en la rama movement

Desistir en recoger cierto item

Perdemos muy pocas partidas pero algunas son por choques tontos con otros equipos ladrones(como los del Retamar). Deberiamos ir siempre a por el item libre en caso de problemas.

La solución actual es ir a nuesro item natural en caso de problemas pero no siempre está libre.

Out of the game field

We go out of the game field during the second phase due to the recoil of the laser shots.

La API de ZeroRobotics esta mal

En el Game Manuel aparecen como funciones:

void game::getHomeBase(int player, float homebase[3]);
int game::pelletsLeft();

pero tanto

pellets_left = game.pelletsLeft();

como

game.getHomeBase(0, our_homebase);
game.getHomeBase(1, their_homebase);

dan error como si no existiesen.

Abriré un tema en su foro de soporte y cuando lo arreglen introduciré las funciones en el código

Recoger suministros de laser

El objetivo de esta issue es simplemente añadir el código necesario a phase1.cpp para recoger los suministros.

Alliance phase strategies

  1. Pick up the supply pack data
  2. Collect four or less debris (not more because we have some problems with the rules because the x and x translational thrusters will be decomissioned)
  3. Use GetOtherZRState api to go follow the other spheres so that he can't pick up supply pack

Necesitamos estrategias.

Necesitamos ideas acerca de las posibles estrategias a seguir. SI tienes una idea abre una pagina en la wiki del proyecto explicándola y vuelve aquí para poner un comentario con un link a la página de la wiki.

Aplicar los cambios de la fase 3D

En la fase 3D se han cambiado unas pocos cosas del estilo de las bases de cada equipo, etc. Hay que meter nuevas constantes e inicializaciones.

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.