Después de resolver la tarea 2, usted será capaz de:
Para esta tarea, usted y su equipo, deben completar el juego Pydle, que es un juego incremental de construcción. Los elementos principales de la tarea están implementados, pero ustedes deben programar las funcionalidades aquí descritas para que el juego funcione completamente. Para el desarrollo de la tarea necesita instalar el módulo pygame. Descargue el módulo.
Pydle consiste en producir dinero en base a construcción de edificios, los cuales producen una cantidad determinada de dinero o bonificación por cada uno de sus ciclos de producción. Los edificios poseen 2 tipos (Productores y Bonificadores) y 2 Colores (Azul y Rojo) y estos se pueden construir, demoler o mejorar según los precios determinados.
Los archivos base de la tarea deben ser descargados desde este enlace. Luego, su tarea es completar las funciones que estan definidas en el archivo funciones.py, éstas permiten jugar Pydle, construir/demoler edificios, recibir ganancias, mejorar edificios y adaptar los precios.
Nota
No es necesario estudiar el módulo pygame, usted sólo debe crear las funciones con los conocimientos que ya posee de python (if, for, while, funciones) y de las estructuras de datos que ha visto en clases, además puede documentarse leyendo el material en línea de listas, tuplas, conjuntos y diccionarios.
El juego se ve en una ventana de 800x600 pixeles. Abarcando un menu de 200x600 y un campo de construcción de 600x600. Este menú posee un botón de ayuda que muestra algunas caracteristicas del juego, los edificios, los botones de mejora, y el estado del cursor.
Respecto al campo de juego, este consiste en celdas romboidales de diagonal 100px. Y están numeradas de la forma indicada en la siguiente imagen:
Además, para el desarrollo de la tarea se disponen de varias estructuras de datos, las cuales son recibidas por las distintas funciones como parámetro.
El diccionario BLOCKS almacena las información actual de las características de los bloques:
BLOCKS={
"BS":{"Pasos":4,"Ganancia":3,"Tipo":"S","Nivel":0,"Precio":100,"Mejora":50},
"RS":{"Pasos":4,"Ganancia":6000,"Tipo":"S","Nivel":0,"Precio":2000000,"Mejora":1000000},
"BDS":{"Pasos":4,"Ganancia":40,"Tipo":"S","Nivel":0,"Precio":1000,"Mejora":500},
"RDS":{"Pasos":4,"Ganancia":80000,"Tipo":"S","Nivel":0,"Precio":4000000,"Mejora":2000000},
"BB":{"Pasos":5,"Ganancia":1,"Tipo":"B","Nivel":0,"Precio":3000,"Mejora":1500},
"RB":{"Pasos":5,"Ganancia":25,"Tipo":"B","Nivel":0,"Precio":5000000,"Mejora":3000000},
"BMC":{"Pasos":7,"Ganancia":250,"Tipo":"S","Nivel":0,"Precio":7000,"Mejora":3500},
"RMC":{"Pasos":7,"Ganancia":250000,"Tipo":"S","Nivel":0,"Precio":14000000,"Mejora":7000000},
"BLB":{"Pasos":6,"Ganancia":3,"Tipo":"B","Nivel":0,"Precio":60000,"Mejora":30000},
"RLB":{"Pasos":6,"Ganancia":50,"Tipo":"B","Nivel":0,"Precio":70000000,"Mejora":35000000},
"NN":{"Pasos":1,"Tipo":"N"}
}
El diccionario STACKS almacena las información de los cambios de representación para el dinero del juego:
STACKS={
"": 10**0,
"K": 10**3,
"M": 10**6,
"KM": 10**9,
"B": 10**12,
"KB": 10**15,
"T": 10**18,
"KT": 10**21,
"Q": 10**24,
"KQ": 10**27,
"QT": 10**30,
"???": 10**33
}
Este diccionario posee como llaves la magnitud en letras y como valor la potencia de 10 correspondiente a esta magnitud, por ejemplo 1250 = 1.25K o 4313512 = 4.31M
La lista Campo almacena los bloques del campo de construcción:
Campo=[
[["Nombre_Bloque",Paso,Estado],["Nombre_Bloque",Paso,Estado],["Nombre_Bloque",Paso,Estado]... Son 6],
[["Nom",P,E],["Nom",P,E],["Nom",P,E] ... Son 5],
[["Nombre_Bloque",0,1]*6],
[["Nom",P,E]*5],
...
]
Para el desarrollo de esta tarea, junto a su equipo deberán implementar las funciones que se encuentran declaradas en el archivo funciones.py. La descripción de las funciones, junto sus valores de retorno son las que se encuentra a continuación. Es importante señalar que los nombres y valores de retorno de las funciones deben ser iguales a los que se detallan en el archivo funciones.py
La fecha límite de entrega es el Viernes 7 de Octubre a las 23:00hrs. La tarea debe ser resuelta en equipos de máximo tres personas. Sólo uno de los integrantes del equipo debe subir la tarea en la sección Tareas de la plataforma Aula, en el ramo de Programación IWI131.
Se debe entregar un archivo comprimido (.zip) que debe contener todos los archivos para hacer funcionar la tarea con el nombre tarea-2-RUT.zip, reemplazando RUT con el RUT del integrante que subirá la tarea. Sólo debe ir la parte del RUT hasta antes de la raya. Por ejemplo: tarea-2-18000123.zip.
Al principio del archivo funciones.py se debe poner un comentario indicando los RUT de los integrantes del equipo como en el siguiente ejemplo:
# Integrantes:
# 18000123-0 Perico Los Palotes
# 18000456-7 Fulanita de Tal
# 18000890-k Federico Santa Maria
No se puede subir ningún archivo adicional.
Evite dejar para última hora la entrega de la tarea. Cerca del plazo final, la plataforma seguramente estará sobrecargada.
Se recibirán tareas con un máximo de un día de retraso, pero serán sancionadas.
Los equipos no necesariamente tienen que ser los mismos de la tarea anterior.
Usted puede discutir la tarea con compañeros de otros grupos, pero bajo ningún motivo puede compartir o copiar el código de su tarea. Cada equipo debe escribir su propio código.
Las políticas de copia de la asignatura rigen para la tarea.
En caso de tener problemas con el desarrollo de la tarea, asista a las ayudantías o consulte en el grupo de facebook.