Pokémon GO y la belleza matemática oculta

Si bien es cierto me inicie en el juego como parte de la novedad y cautivado por los simpáticos monstruos  que otrora llenaban los espacios televisivos, y, con los que crecí aprendiendo que lo importante en una liga no es ganar sino rifarse un tiro con cada maestro de gimnasio posible, en otras palabras a ser belicoso de a madres aunque no ganara nada con ello (jeje). Luego de un rato de vagar un rato por mi ciudad atrapando criaturas aquí y allá, comencé a preguntarme sobre los aspectos técnicos del juego, algunas cosas como atrapar ciertos bichos de esos en un cierto lugar y a una cierta hora me dio a pensar que quizá fuera posible la existencia de un algoritmo de distribución de las criaturas, por lo que, sería posible descifrar cuando aparecería otro de cierta especie?

Pronto me vi sumergido en un mundo de matemáticas, desde el simple hecho de calcular una buena parabola para obtener puntos de experiencia adicionales por una bola curva, hasta cosas muy complejas como el cálculo de los IVs e IVPCs (Valores Internos y Valores Internos por Puntos de Combate, respectivamente) de un Pokémon, trazo de vectores para calcular la mejor ruta de una caminata a fin de visitar la mayor cantidad de poképaradas, etc.

Aunque simple en su modo de juego, la realidad es que Niantic ha hecho de la matemática su motor de impulso y lo ha llevado a otro nivel, la inclusión del Machine Learning en sus algoritmos de juego para detectar bots u otras herramientas claramente no permitidas, han hecho que el juego se mantenga coherente para miles de fans en todo el mundo y accesible para aquellos que van iniciando.

La verdadera estrategia de Niantic es sin embargo el cambio, y aquello que permite el cambio rápido es precisamente su fundamento numérico, para ello voy a dar un ejemplo sencillo, en la última actualización de la API, Niantic actualizó la tabla de puntos máximos de cada Pokémon, sin embargo para que no hubiese queja se actualizaron los CP de ca Pokémon capturado, y, aunque a muchos no les hizo gracia pues algunas de las criaturas tuvieron un cambio positivo considerable, otras disminuyeron, pero dicho cambio obedece a la lógica un cambio previo en favor de fomentar la competencia por los gimnasios y las recompensas de los mismos; por otra parte parece lógico que los niveles se ajustaron como un paso previo para futuras actualizaciones, según las cuales se podrá luchar en modo duelo sin necesidad de gimnasios, y la tan esperada liberación de los Pokémones legendarios.

Conozco a muchos que piensan que sólo se trata de un juego más, sin embargo, la cantidad de matemáticas implicadas en cada proceso, desde la mutación de los algoritmos para la distribución pseudoaleatoria de las criaturas, el machine learning usado para detectar comportamientos probables en los jugadores, hasta la determinación del mejor Pokémon a usar en una batalla, demuestran que aquello que lo hace simple, es precisamente la lógica matématica implicita en la base del juego.

Sea cual sea el rumbo que tome este juego no podía menos que dedicar una entrada en el blog, pues me parece que la fiebre ya se les pasó a muchos, pero hay juego para un buen rato. Por si alguno tiene dudas de los porcentajes de cambio, les dejo la tabla completa para los fines que mejor convengan.

SaluDoS!!!


# Pokemon CP MAX Cambio NVO CP MAX LV
1 Bulbasaur 1072 -8.39 982 PRO
2 Ivysaur 1632 -4.91 1552 PRO
3 Venusaur 2580 -0.47 2568 PRO
4 Charmander 955 -12.97 831 PRO
5 Charmeleon 1557 -4.72 1484 PRO
6 Charizard 2602 3.24 2686 PRO
7 Squirtle 1009 -19.83 809 MASTER
8 Wartortle 1583 -16.34 1324 MASTER
9 Blastoise 2542 -9.84 2292 MASTER
10 Caterpie 444 -11.36 394 ENDURANCE
11 Metapod 478 -12.21 420 ENDURANCE
12 Butterfree 1455 16.96 1702 ENDURANCE
13 Weedle 449 -11.54 397 ENDURANCE
14 Kakuna 485 -19.16 392 ENDURANCE
15 Beedrill 1440 23.45 1778 ENDURANCE
16 Pidgey 680 -14.59 581 ENDURANCE
17 Pidgeotto 1224 -11.3 1086 ENDURANCE
18 Pidgeot 2091 -4.63 1994 ENDURANCE
19 Rattata 582 1.17 589 ENDURANCE
20 Raticate 1444 7.31 1550 ENDURANCE
21 Spearow 687 -1.87 674 ENDURANCE
22 Fearow 1746 3.91 1814 ENDURANCE
23 Ekans 824 -5.53 778 ENDURANCE
24 Arbok 1767 -1.69 1737 ENDURANCE
25 Pikachu 888 -11.27 788 MASTER
26 Raichu 2028 -0.16 2025 MASTER
27 Sandshrew 799 49.55 1195 MASTER
28 Sandslash 1810 28.61 2328 MASTER
29 Nidoran♀ 876 -15.95 736 MASTER
30 Nidorina 1405 -13.23 1219 MASTER
31 Nidoqueen 2485 -5.91 2338 MASTER
32 Nidoran♂ 843 -12.28 739 MASTER
33 Nidorino 1373 -8.76 1253 MASTER
34 Nidoking 2475 -3.58 2386 MASTER
35 Clefairy 1201 -9.59 1086 MASTER
36 Clefable 2398 -1.83 2354 MASTER
37 Vulpix 831 -6.9 774 MASTER
38 Ninetales 2188 -1.39 2158 MASTER
39 Jigglypuff 918 -22.26 714 ENDURANCE
40 Wigglytuff 2177 -12.44 1906 ENDURANCE
41 Zubat 643 -11.42 570 ENDURANCE
42 Golbat 1921 -4.75 1830 ENDURANCE
43 Oddish 1148 -6.86 1069 MASTER
44 Gloom 1689 -10.45 1512 MASTER
45 Vileplume 2493 -5 2368 MASTER
46 Paras 917 -8.78 836 ENDURANCE
47 Parasect 1747 -5.13 1657 ENDURANCE
48 Venonat 1029 -12.31 902 ENDURANCE
49 Venomoth 1890 2.51 1937 ENDURANCE
50 Diglett 457 1.81 465 LOL
51 Dugtrio 1169 14.15 1334 LOL
52 Meowth 756 -15.62 638 ENDURANCE
53 Persian 1632 -5.63 1540 ENDURANCE
54 Psyduck 1110 -12.87 967 MASTER
55 Golduck 2387 -4.85 2271 MASTER
56 Mankey 879 14.05 1002 MASTER
57 Primeape 1865 12.92 2106 MASTER
58 Growlithe 1335 -16.79 1111 PRO
59 Arcanine 2984 -4.84 2840 PRO
60 Poliwag 796 -12.62 696 MASTER
61 Poliwhirl 1340 -2.03 1313 MASTER
62 Poliwrath 2505 -2.53 2442 MASTER
63 Abra 600 91.31 1148 PRO
64 Kadabra 1132 64.31 1860 PRO
65 Alakazam 1814 59.18 2888 PRO
66 Machop 1090 10.09 1200 PRO
67 Machoke 1761 8.49 1911 PRO
68 Machamp 2594 11.38 2889 PRO
69 Bellsprout 1117 -17.96 916 MASTER
70 Weepinbell 1724 -14.43 1475 MASTER
71 Victreebel 2531 -10.34 2269 MASTER
72 Tentacool 905 5.72 957 MASTER
73 Tentacruel 2220 6.92 2374 MASTER
74 Geodude 849 40.55 1193 ENDURANCE
75 Graveler 1434 26.65 1816 PRO
76 Golem 2303 26.64 2917 PRO
77 Ponyta 1516 -0.91 1502 MASTER
78 Rapidash 2199 2.42 2252 MASTER
79 Slowpoke 1219 -1.2 1204 MASTER
80 Slowbro 2597 -4.43 2482 MASTER
81 Magnemite 891 21.69 1084 MASTER
82 Magneton 1880 19.01 2237 MASTER
83 Farfetch'd 1264 -13.58 1092 LOL
84 Doduo 855 18.19 1011 MASTER
85 Dodrio 1836 16.47 2138 MASTER
86 Seel 1107 -18.76 899 ENDURANCE
87 Dewgong 2146 -11.7 1895 ENDURANCE
88 Grimer 1284 -1.1 1270 PRO
89 Muk 2603 4.09 2709 PRO
90 Shellder 823 16.48 959 MASTER
91 Cloyster 2053 20.57 2475 MASTER
92 Gastly 804 24.61 1002 ENDURANCE
93 Haunter 1380 24.37 1716 ENDURANCE
94 Gengar 2078 26.03 2619 PRO
95 Onix 857 16.93 1002 LOL
96 Drowzee 1075 -7.67 993 MASTER
97 Hypno 2184 -6.21 2048 MASTER
98 Krabby 792 75 1386 PRO
99 Kingler 1823 47.8 2694 PRO
100 Voltorb 840 2.1 858 ENDURANCE
101 Electrode 1646 15.44 1900 ENDURANCE
102 Exeggcute 1100 0.22 1102 PRO
103 Exeggutor 2955 -1.29 2917 PRO
104 Cubone 1007 -6.27 944 ENDURANCE
105 Marowak 1657 2.11 1692 ENDURANCE
106 Hitmonlee 1493 61.19 2407 MASTER
107 Hitmonchan 1517 38.41 2100 MASTER
108 Lickitung 1627 -18.7 1323 LOL
109 Koffing 1152 -5.24 1092 MASTER
110 Weezing 2250 -2.95 2184 MASTER
111 Rhyhorn 1182 42.09 1680 ELITE
112 Rhydon 2243 47.15 3301 ELITE
113 Chansey 675 117.61 1469 LOL
114 Tangela 1740 26.96 2209 MASTER
115 Kangaskhan 2043 20.56 2463 MASTER
116 Horsea 795 15.97 922 ENDURANCE
117 Seadra 1713 15.56 1980 ENDURANCE
118 Goldeen 965 4.34 1007 MASTER
119 Seaking 2044 -0.15 2041 MASTER
120 Staryu 938 -1.21 927 MASTER
121 Starmie 2182 5.55 2303 MASTER
122 Mr. Mime 1494 32.79 1984 ENDURANCE
123 Scyther 2074 18.82 2464 MASTER
124 Jynx 1717 46.34 2513 PRO
125 Electabuzz 2119 3.65 2196 MASTER
126 Magmar 2265 -0.47 2254 MASTER
127 Pinsir 2122 30.57 2771 PRO
128 Tauros 1845 34.88 2489 MASTER
129 Magikarp 263 -16.08 221 ELITE
130 Gyarados 2689 22.03 3281 ELITE
131 Lapras 2981 0 2981 PRO
132 Ditto 920 -21.91 718 LOL
133 Eevee 1077 -10.04 969 ELITE
134 Vaporeon 2816 12.11 3157 ELITE
135 Jolteon 2140 27.56 2730 PRO
136 Flareon 2643 9.89 2904 PRO
137 Porygon 1692 -7.31 1568 ENDURANCE
138 Omanyte 1120 20.18 1346 PRO
139 Omastar 2234 20.23 2686 PRO
140 Kabuto 1105 6.18 1173 PRO
141 Kabutops 2130 18.21 2518 PRO
142 Aerodactyl 2165 20.47 2608 PRO
143 Snorlax 3113 7.79 3356 ELITE
144 Articuno 2978 -1.5 2933 PRO
145 Zapdos 3114 6.93 3330 ELITE
146 Moltres 3240 1 3272 ELITE
147 Dratini 983 -12.5 860 ELITE
148 Dragonair 1748 -7.91 1610 ELITE
149 Dragonite 3500 2.33 3582 ELITE
150 Mewtwo 4145 14.85 4761 ELITE
151 Mew 3299 -6.31 3091 ELITE

Comentarios

Publicar un comentario

Tu opinión es importante compartela...

Entradas populares de este blog

Detener la sincronización de tiempo/fechas entre Host y Guest en Virtual Box

Extraer datos de un archivo.mdb (Access) con python

Solución al problema con odbc pgsql (postgresql) en Windows 7 de 64 bits