¿Cuál es el truco número uno aquí? El truco número uno es no repetirse, lo que básicamente significa no hacer el mismo juego nuevamente, sino repetir el de otra persona. Porque lo que es muy fácil y accesible para un nuevo diseñador es copiar un juego que te guste, copiar un juego que creas que es interesante, que tiene potencial para aún más, y luego modificarlo un poco, modificarlo en esa dirección. Esto te brinda una buena base para comenzar y aún te da cierta libertad para ser este diseñador que introduce primero las reglas.
Así que espero que todos ustedes conozcan este juego, es Conecta Cuatro. Básicamente ganas el juego al tener cuatro piezas en línea. ¿Qué podríamos hacer con este juego para llevarlo al siguiente nivel, ponerlo en los tiempos modernos? Tomé la decisión simple de simplemente rotarlo 45 grados. Ahora se llama Diagonal Cuatro y las mismas reglas aún se aplican. En el turno de un jugador, coloca una pieza en el tablero, pero en este juego realmente tiene que colocarlas desde la izquierda o desde la derecha, en la parte superior y caen, y aún ganas al tener cuatro en línea. Hay algunas reglas adicionales en las que podríamos entrar en otro momento, pero básicamente es lo mismo, solo girado 45 grados, lo que introduce muchas más posibilidades y no es tan fácilmente calculable por una computadora.
También somos una conferencia tecnológica, entonces, ¿cuánto esfuerzo sería convertir este juego en una versión jugable en una computadora? En realidad, no mucho esfuerzo, porque hay una gran biblioteca llamada BoardGame.IO. BoardGame.IO es básicamente el Redux para juegos de mesa. Simplemente defines tu usuario lector, tienes algún estado inicial. En nuestro caso, simplemente decimos, okay, tenemos esta cuadrícula de ocho por ocho piezas y llenamos un espacio específico, y luego declaras todas las acciones posibles. En este juego, solo hay una acción posible porque solo puedes colocar una pieza en la parte superior de la fila, así que hay una acción, hay algunas inserciones a medida que las haces clic, así que hay algunos argumentos estándar para una acción, que todos deberíamos conocer muy bien. Y hay algunas funciones de utilidad que calculan movimientos válidos y algunas funciones de utilidad, algunas ganan en realidad porque es un juego, algunos pueden ganar, es relevante verificar eso. Y luego, ¿cómo lo haces visual porque esto es solo un reductor? BoardGame.IO proporciona una interfaz de React bastante simple para ti. Simplemente declaras con algún código React estándar cómo se ve tu tablero con cualquier estado dado. Aún puedes usar tablas si quieres, porque en realidad es bastante fácil poner este juego en la computadora y luego usar alguna transformación CSS para rotarlas 45 grados.
La pregunta ahora es, ¿por qué realmente necesitamos BoardGame.IO? ¿Qué tiene de genial esta cosa bastante simple? Estimemos cuánto tiempo tomaría agregar inteligencia artificial a esto. Probablemente sea una estimación grande, pero con BoardGame.IO básicamente solo necesitas cinco líneas de código, dependiendo de cómo lo cuentes, y tienes tu IA. ¿Cómo funciona? Solo voy a mostrarte el video de la IA en acción. La IA es literalmente solo esta cosa en mi lado de programación. Definitivamente hay algunas cosas sucediendo en la biblioteca. Veamos un video. Ahora la computadora está jugando contra sí misma, y ves que la pieza cae. ¿Qué está pasando? En cada turno, la computadora elige aleatoriamente uno de los movimientos posibles y luego juega el juego dependiendo de ese movimiento. Básicamente está comenzando un árbol para algunos de los movimientos posibles y luego verificando quién tiene más probabilidades de ganar al final. Para cada uno de estos árboles, se calculan algunas probabilidades de ganar o perder, y hay alguna configuración en la que puedes decir cuántas iteraciones, cuántas muertes de juego quieres hacer. Ves a la computadora jugando aquí, y Redd está poniendo a Blue en una situación difícil, porque Blue está obligado a jugar piedras específicas, pero Redd tiene cuatro piezas en línea ahora.
Comments