¿Cómo se puede saber el mejor lugar para colocar una pieza determinada en Tetris?

Para un punto de vista no AI:
Saber dónde colocar una pieza depende de tu estilo de juego. Un jugador que juega el nuevo tetris estándar con giros completos (giros) tendría un estilo de juego completamente diferente al de alguien que apila los tetris. Para mí, cuando construyo solo tetrises en un solo jugador, miro 2-3 piezas por delante y coloco la pieza actual donde complementaría las siguientes 2-3 piezas. Si no hay un lugar perfecto para colocar una pieza, pienso si hay un buen lugar para colocar una pieza y luego girar una pieza en el lugar correcto. Si no, entonces pondría la pieza en el lugar que dejará la menor cantidad de daño / cuando realmente pueda girar una pieza en ella.

Para el modo multijugador, empiezo con “aperturas” que supongo que también puedes implementar fácilmente en la IA, ya que está jugando según el libro. Ciertas aberturas requieren que solo prestes atención a unas pocas piezas a la vez, y puedes colocar piezas en otro lugar.

Para IA:
Recomiendo mirar Jugar TETRIS usando el Algoritmo de PageRank. Ryan Heise hace un gran trabajo al describir lo que hace para desarrollar una gran IA para apilar tetrises. Dado el sistema TGM y 4 miradas hacia el futuro, en promedio pasaría por más de un millón de piezas antes de estropear la pila. Si usara el sistema de bolsa de 7 piezas, incluso sería más preciso (descrito a continuación).

Sistema TGM:
Generar 4 piezas. La siguiente pieza no puede ser ninguna de las 4.

Sistema de bolsa de 7 piezas:
Si la bolsa está vacía, cree una nueva “bolsa” con 7 piezas.
Mientras la bolsa no esté vacía, saque una pieza y selecciónela como la siguiente pieza.

Para multijugador:
Estoy seguro de que el sistema aplastará a cualquier jugador humano en el modo multijugador, ya que la velocidad descrita en esa página es casi el doble de la velocidad del jugador humano más rápido que juega perfectamente. Si desea una estrategia viable que sea diferente, implementar el apilamiento ZT sin sentido no sería demasiado difícil. Configuraciones de apilamiento ST Usando las mismas piezas en esa página, si es una pieza roja o azul, colóquela en el medio, azul en la parte superior de la roja. Si es una T, sosténgala hasta que pueda completar un giro en t. si es una pieza verde, colóquela a un lado si puede, de lo contrario sosténgala. Si se trata de algo más, apílelo en los 3 espacios de la derecha. Es sostenible a menos que seas muy desafortunado.

Bueno, primero tendrías que proponer algunos criterios para “lo mejor”. ¿Cual es tu meta? ¿Tener la menor cantidad de bloques posible en la pantalla en todo momento? ¿Tener la altura más baja de los bloques en la pantalla en todo momento? ¿Para obtener la mayor cantidad de “puntos” de acuerdo con algún sistema de puntuación? ¿Para minimizar la probabilidad de que tengas una situación que te alimente bloques donde no tienes más remedio que completar?

Para cualquiera de esos criterios, sí, sería posible desarrollar un algoritmo que determinara el “mejor” lugar. Pero me parece que la mayoría de los tetris no se trata de encontrar el “mejor” lugar para colocar las cosas. Incluso si cometes “errores”, puedes eliminarlos si eres un buen jugador y seguir limpiando para siempre, por lo que cada conjunto de movimientos que te permiten hacer esto es más o menos lo mismo.

Ahora, en muchos juegos de Tetris, el objetivo es derribar la mayor cantidad de bloques lo más rápido posible, o eliminar tantas líneas como sea posible, y hay bonificaciones de puntos por eliminar varias líneas en una. En este caso, el “mejor” movimiento podría ser movimientos que minimicen la probabilidad de que tengas que deslizar una pieza debajo de otra pieza, porque si tienes que hacerlo, no puedes hacer una “caída dura” que lleva menos tiempo . Y luego, los mejores movimientos también minimizarían la cantidad de teclas de flecha que el usuario tendría que presionar, además de tener en cuenta la probabilidad de completar y todo eso.

Entonces, si define qué significa “mejor” movimiento, entonces sí, es posible tener un algoritmo. Pero sería complicado.

Solo hay dos casos en los que debe saber cómo colocar una pieza determinada donde pertenece. Apilamiento y apilamiento.

Para apilar, las mejores configuraciones requerirían que no tenga crestas, sino un panel de superficie plana. Aunque es difícil lograr tener siempre una superficie plana, debería ser una de las cosas a las que apuntar. Esto se debe a que limpiar las crestas sería mucho más difícil y requeriría más piezas, en lugar de hacerlo en un plano.

La composición actual de los campos afectaría por completo a la punta de posicionamiento de la siguiente pieza, que se apila hacia abajo.

Lo más importante es NO bloquear el agujero que conduce hacia abajo. Veo a muchos jugadores nuevos cometiendo este error de cubrir su hoyo, lo que haría que el hoyo sea más difícil de abrir.

La pieza en O en la situación, si bien es un movimiento lógico, requeriría más piezas para llegar al fondo. Al apilar hacia abajo, es mejor abrir agujeros en lugar de despejar la pila en la parte superior para abrirla. Ahorraría mucho más tiempo y proporcionaría defensa, mientras que el apilamiento puede correr el riesgo de ser bombardeado con ataques.

Cualquier otra situación requeriría configuraciones, que es la memorización de formas. Aparte de eso, no debes preocuparte demasiado sobre dónde deben ir las piezas. Simplemente apile cuidadosamente y no cubra los agujeros.