Proyecto de Aula Programación de computadores, desarrollo estrategia para ganar juego 2048
Enviado por rtert • 30 de Septiembre de 2019 • Documentos de Investigación • 1.208 Palabras (5 Páginas) • 308 Visitas
Proyecto de Aula Programación de computadores, desarrollo estrategia para ganar juego 2048
Ingrid Katherine Jimenez Hernandez
Universidad Politécnico Grancolombiano
Bogotá
Injimenez3@poligran.edu.co
Resumen
Con base en el análisis y desarrollo de estrategias, algoritmos y propuestas realizadas previamente orientadas a los ejercicios del juego 2048, se van a tener en cuenta las nuevas herramientas y propuestas para lograr desarrollar la estrategia para ganar el juego.
- Introducción
El juego 2048 fue creado por un joven italiano llamado Gabriele Cirulli, quien se inspiró en dos juegos ya existentes: 1024 y Threes. El objetivo del juego es llegar a la potencia de dos más grande posible (2048 o incluso mayor). Para ello, se dispone de un tablero de 4x4 en el que se pueden realizar como máximo cuatro movimientos posibles (derecha, izquierda, arriba, abajo). Dependiendo el movimiento, si dos casillas son adyacentes e iguales, se combinarán en una única baldosa con su respectiva suma. Cabe aclarar que, en los movimientos ´derecha´ e ´izquierda´ se juntarán solo las casillas adyacentes respecto de las filas del tablero y, en los movimientos arriba y abajo harán lo propio con respecto a las columnas. Además, cada vez que se realice un nuevo movimiento, y el tablero ya esté modificado con las colisiones correspondientes, aparece una ficha en una posición aleatoria, cuyo valor puede ser de 2 o 4. Se ubicará en cualquiera de los espacios libres del tablero y pasa a formar parte del mismo, pudiendo ser usada para futuras colisiones. El juego finaliza de forma afortunada cuando una casilla contiene el valor 2048 - de ahí surge su nombre- pero puede continuar en busca de una potencia mayor. No obstante, si un jugador queda sin algún movimiento legal (es decir, ya no quedan espacios vacíos y no existen baldosas adyacentes con el mismo valor), el juego termina. A pesar de su fácil formulación es un problema duro de resolver. Como muchas soluciones para juegos, esta no es trivial por las distintas estrategias que se pueden plantear para su solución, pudiendo transformarse en un problema intratable. Es importante destacar que uno de los principales objetivos de la materia incluye aplicar buenas prácticas de programación aplicando técnicas de diseño, ejercitando en algunos casos con la resolución de distintos tipos de juegos, usando un enfoque metodológico de desarrollo no solo en los juegos sino en distintas aplicaciones tradicionales. En las siguientes secciones se profundizará acerca de las características del juego, describiendo el desafío computacional que implica, haciendo un análisis detallado de los algoritmos implementados, para luego abordar con el diseño e implementación del desarrollo y las soluciones para ganar el juego.
- DESARROLLO ALGORITMO
Para el desarrollo del algoritmo tuve en cuenta todas las pautas dadas respectivamente en el manual del juego 2048, teniendo en cuenta esto vamos a definir las variables del juego y cómo podemos ubicarlas correctamente en el algoritmo.
Para esto se debe tener en cuenta la forma de nuestro tablero de juego, y cuáles son los movimientos.
Respecto a este se nos indica que el juego está diseñado internamente como una cuadricula de enteros cada uno correspondiente a un color
Representación del tablero de juego como una cuadrícula de enteros.
III. ALGORITMO
Estrategia orientada a ganar
Jugador Automático
- Se abre el juego
- Se identifica en qué posición se encuentran las fichas // esto con los colores o con fila y columna.
- Se determina quien va a realizar el primer movimiento.
- Se especifica que el direccionamiento de las fichas debe ser hacia la casa. // Los movimientos de las fichas deben ser hacia adelante ya que esta orientado a ganar la idea es dirigirse a casa. (esto se puede definir en el programa al poner todas las condiciones y movimientos orientados a casa)
- ¿Me corresponde realizar el primer movimiento?
SI: Determino cual de mis fichas moveré y a qué posición la moveré.
No: Espero que los demás jugadores participen
- Identifico las posiciones a las cuales ellos movilizaron sus fichas. // esto da realizando un barrido por cada uno de los enteros que componen el tablero, esto actualiza las posiciones del primer movimiento de todos los jugadores, un ciclo.
- Después de haber identificado las posiciones que tienen los otros jugadores tomo acciones. // se toman decisiones dependiendo de las posiciones en las cuales se encuentran las fichas de los contrarios. (como está orientado a ganar las decisiones que se van a tomar son las de avanzar hacia casa lo que más se pueda)
- ¿Hay una ficha de otro jugador delante de alguna de mis fichas?
SI: Se hará un salto por encima de esta ficha //cambiando la variable de posición con respecto a esta condición, de esta manera avanzaré más.
No: Se realizará un movimiento a una casilla vacía.
Este ciclo se repetirá con respecto al inicio de cada juego nuevo.
- Siguiente turno.
- Identifico las posiciones a las cuales ellos movilizaron sus fichas. // esto dar realizando un barrido por cada uno de los enteros que componen el tablero, esto actualiza las posiciones del siguiente movimiento de todos los jugadores, un ciclo.
- Después de haber identificado las posiciones que tienen los otros jugadores tomo acciones.
¿Hay una ficha delante de alguna de mis fichas?
...