lunes, 30 de septiembre de 2019

Voy a dejar que el humano crea que me gana...

Últimamente estoy muy viciado probando apps de móvil ya que, hasta hace poco, era uno de esos raros que seguía llevando un móvil pequeñito sólo para llamar, de prepago y gastando menos de 20 euros al año.

Me compré un móvil grande actual y, tras descargar las apps básicas de todos conocidas, empecé a pensar... ¿qué más puedo necesitar?...
Un luxómetro, un medidor de decibelios y frecuencias, un nivel, medidor de BPMs, pianito virtual, mapa de estrellas, mapa del metro, diccionarios, utilidades de GPS, calculadora científica...

Y tras dos meses de sólo "utilidades", al fin le llegó el turno a las chorraditas, es decir: los juegos: estos últimos días en especial he descargado juegos de mesa y de estrategia.

Todos los juegos en cuya resolución no interviene el azar tienen un algoritmo matemático de victoria, la cuestión es cuánto de simple es según las mecánicas, número y variedad de piezas, y posiciones posibles de éstas, y por tanto cuánto tiempo de procesamiento requiere en un ordenador calcular todas las posibles situaciones de tablero hasta un final determinado.
El ajedrez, por ejemplo, es un juego que, a pesar de tener una gran cantidad de combinaciones posibles, debido a su popularidad ha sido computerizado y estudiado desde los primeros tiempos de la informática (e incluso antes con aficionados memorizando y publicando libracos de jugadas) con lo que ya en el siglo pasado se obtuvieron programas capaces de ganar a las mejores mentes humanas.

El reversi (u Othello) es otro juego de mesa de dinámica mucho más simple, y por tanto más sencillo de modelizar y procesar. Es un ejemplo de juego contra en el que nunca he podido ganar contra la máquina, salvo que le limite el tiempo de procesamiento impidiéndola así mirar demasiado lejos en el futuro. Pues a fin de cuentas es lo que hacen estos procesos informáticos, rastrean todas las posibles situaciones de tablero hasta sus diversos finales, y escogen los movimientos que llevan a un final favorable.
Esto puede ser mediante un algoritmo, o mediante una colección de tablas (como los libracos de jugadas de ajedrez de la era preinformática). Así el nivel de dificultad se suele reducir limitando el tiempo o el número de iteracciones que se le permite a la máquina comprobar. En un programa de ajedrez, debido a su complejidad, la máquina puede tirarse bastante tiempo iterando, pero en juegos como reversi o damas, el proceso es más ligero.

En el juego de las damas, tras descargar una app en la que me resultaba muy difícil perder (en la modalidad de damas españolas, en las internacionales se le daba mejor, o a mí peor, porque no estaba acostumbrado y la cagaba bastante), probé otra en la que, muy al contrario, la mayoría de las veces o la máquina me ganaba o quedábamos en tablas. Pero una cosa me llamó la atención de aquel segundo programa. A pesar de que jugaba muy bien, a veces le daba por hacer algún movimiento estúpido.

Bien, parece ser que el juego de las damas es otro, como no podía ser de otra forma, que está resuelto matemáticamente de modo que el resultado final es inexorablemente tablas... siempre que ninguno de los dos jugadores cometa fallos.
Entonces, estoy sospechando que el funcionamiento de esta segunda app consiste en ejecutar un algortimo perfecto de victoria combinado con un generador de torpezas casuales en algunos turnos aleatorios, de modo que el jugador humano tenga alguna posibilidad de ganar y no se frustre. El muy ingénuo...


No hay comentarios: