Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción a la Computación
Proyecto
2048 en Python
Profesor:
Integrantes:
1
Introducción
2048 es un juego en línea y para móviles creado en marzo de 2014 por el desarrollador web
italiano de 19 años Gabriele Cirulli, cuyo objetivo es deslizar baldosas en una cuadrícula para
combinarlas y crear una baldosa con el número 2048. Se lo considera como un rompecabezas
de deslizamiento
El juego registra el puntaje del usuario con un marcador en el margen superior derecho. El
puntaje comienza en cero y, cuando dos baldosas se combinan, este se incrementa por el valor
de la baldosa resultante. Al lado del puntaje actual, se muestra el mejor puntaje del usuario,
al estilo de los juegos de Arcade
2048 acaba en victoria cuando se logra obtener la baldosa con el número 2048 (de allí el
nombre del juego). Tras haber logrado esto, es posible seguir jugando en un modo sandbox,
donde es posible obtener fichas con mayores denominaciones (por ejemplo, 4096, 8192, etc.)
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.
2
Objetivo
El reto de este programa consiste en mostrar el estado final del juego dada la posición inicial
y la serie de movimientos realizados, suponiendo que la nueva casilla que se agregará después
de cada movimiento será la primera casilla disponible (si es que la hubiera) recorriendo la
malla de izquierda a derecha y de arriba hacia abajo. Si una casilla suma más de 2048 esta
conserva su mismo valor.
Entrada
Las primeras 4 líneas contienen enteros separados por espacios y que representan el estado
inicial del juego. Cada número es una potencia de 2 menor o igual a 2048 o un 0 si es que no
hay casilla en ese lugar. Posteriormente se da un entero n con 1>M>10 ^5 que indica la
cantidad de movimientos que se seguirán. Las próximas n líneas contienen alguna de las
siguientes letras: “w”, arriba; “a”, izquierda; “s”, abajo y “d”, derecha indicando el
movimiento a realizar.
Salida
Imprimir 4 líneas cada una con 4 enteros separados por un espacio por un espacio que
representan el estado final del 2048 después de haber realizado los movimientos partiendo
de la posición inicial.
Dificultades
La parte mas complicada durante el desarrollo del programa fue trabajar con tantas líneas de
código y modular como es que se harían cada uno de los pasos. Al final se opto por desarrollar
funciones que se encargarán de distintas cosas cada una para al momento de que el usuario
pidiese un movimiento solo hiciera falta llamar a las funciones que se encargan de cada
movimiento.
Para solucionar esto se optó por agregar comentarios dentro del código para poder recordar
que parte del código es la que se encarga de cada cosa.
La segunda parte difícil fue hacer aparecer un 0 en una casilla disponible y determinar cuándo
es que el juego se ha perdido.
3
Para la aparición del 2 a pesar de que el programa original nos plantea la aparición de 2 en el
primer 0 que encontremos vacío, decidimos ir más allá y hacer que apareciera de forma
aleatoria para simular un poco más la experiencia de juego.
Se usará M para referirse a la matriz que representa nuestro juego incluyendo 4 listas con 4
elementos cada una.
Para hablar de las posiciones Se usarán las letras j e i donde i representa las filas y j las
columnas, dejándonos con matriz:
M 4x4
4
Diagrama de flujo
Pseudocódigo