El world war bot y el centroide

La moda estas últimas semanas en este inframundo que es Twitter ha sido la de procrastinar haciendo memes sobre el World War Bot y el ya concluido Guerra Civil Bot. Ambos son cuentas en las que un sistema automatizado hace que países (o en el caso de Guerra Civil Bot) conquisten, aleatoriamente, un país cercano. Con el tiempo, ciertos "elegidos" se expanden más que otros y llega un día en el que un país acaba dominando el mundo. En el caso de Guerra Civil Bot fue La Rioja, y en el caso de World War Bot a fecha de 19 de Junio de 2019 España tiene todos los números para acabar ganando la guerra, con una desigual lucha ante El Salvador y las islas Pitcairn.



En dicha guerra, o más bien, guerra de memes, ha participado lo más granado de la sociedad twittera, comentando o poniendo imágenes o lo que sea. Todo un fenómeno de lo más absurdo y digno de Internet pero, ¿cómo funcionan exactamente los bots?

En la página oficial de World War Bot (sí, sí, página oficial, tú) se explica, más o menos, como funciona el asunto. El proceso es el siguiente:

- Cada territorio (no Estado soberano) tiene una id.
- Se selecciona de forma completamente aleatoria un territorio.
- Si el territorio no está controlado por su dueño original (por ejemplo, si Francia es seleccionada y ha sido conquistada por España), hay una posibilidad de que el territorio alcance la independencia. Dicha posibilidad es de 1/(12+turno actual * 10). Es decir, si estamos en el turno 100, tenemos 1 posibilidad entre 1012 de que un territorio se independice. Al hacerlo de esta manera, el "procés" de independencia de un territorio es más difícil de ver conforme avanza la partida.
- Si NO ocurre la independencia, se busca el territorio con una soberanía diferente más cercano a este y se buscan todos los territorios para los cuales este es el más cercano, formándose una lista de territorios.
- De esta lista, se escoge un territorio al azar.
- El territorio queda conquistado por el país que controla el territorio "origen", sin batalla alguna.
- El proceso se repite en la hora siguiente.



¿Fácil, no? Bueno, no tanto. ¿Cómo se calcula la distancia entre los territorios? Pues bien, para ello se utiliza un concepto matemático que es el centroide. Y no es ningún robot peligroso ni nada - es el cálculo de la media de la posición de todos los puntos de una forma, en este caso un territorio. Es decir, es lo mismo que el centro geográfico, realmente. En un cuadrado lo tenemos muy sencillo - el centro es donde se cruzan las diagonales. O en una circunferencia. Pero, ¿en España o en Kazajstán, cuál es el centro exacto? No es tan sencillo.

Para calcular el centroide de una forma irregular necesitamos calcular todas las coordenadas de las fronteras del país y dividirlas por el número de coordenadas de las que disponemos. Es algo así como calcular la media de las coordenadas de la frontera. Depende del sistema de mapeado que estemos usando, dispondremos de más o menos coordenadas, pero el cálculo es el mismo.



Aún y así parece algo complicado. ¿No tenemos nada mejor? Pues sí. Google Maps nos lo ofrece en su API. Un ejemplo en Javascript:

var geocoder = new google.maps.Geocoder();
geocoder.geocode( { address : "Germany" },
function(results) {
window.alert(results[0].geometry.bounds.getCenter());
});

¿Te verías capaz de programar un War Bot?

 

Sé el primero en dejar un comentario...

Nota: ¡El código HTML no será interpretado!
* Campos obligatorios