Registrarse

[Otros] Instrucciones Tarea 2

Estado
Cerrado para nuevas respuestas.

Jason

PkPower déjame poner tildes en mi nick ¬¬
Instrucciones tarea 2: Giravoltorb
Entrega: 15 de Febrero a las 23:59 horas GMT -3:00

En la tarea anterior disponían de limitadas herramientas para que tuvieran que usar su ingenio y aprendieran a resolver problemas complejos para los recursos que poseen. En esta disponen de muchas más herramientas de las que necesitan para que aprendan a distinguir cuándo es o no necesario usar cada una.

Para la tarea 2 van a programar un Giravoltorb, el minijuego del casino de ciudad Trigal en Pokémon Heart Gold y Soul Silver. En concreto su programa debe poder:
  • Preguntar si es un nuevo usuario o no.
    En caso de que lo sea:
    • Pedir nombre al jugador, si no ingresa, por defecto se creará un nombre nuevo, siguiendo la serie Jugador 1, Jugador 2, Jugador 3... dependiendo de los jugadores que hayan ingresado anterior mente. Si antes hubo: pepito, jugador 1, juangu_is_real y marco, ahora el nombre por defecto sería Jugador 2. No debe dejar que se repita el nombre ingresado con alguno de los existentes.

    En caso de que quiera cargar una partida anterior:
    • MOSTRAR EN PANTALLA los usuarios existentes y dar a elegir uno de ellos.

  • Ser jugable de forma completamente funcional a como es en los juegos de pokémon.
    • Cantidad de voltorbs, 2 y 3 acorde a los niveles.
    • Marcar y desmarcar fichas.
    • Voltear fichas (eliminando las marcas).
    • Mostrar las ayudas debajo de cada columna y al costado (derecho) de cada fila.
    • Generar tablero aleatorio correctamente.
    • Calcular puntajes parciales (de cada partida) y los totales del jugador.
    • Etc.
  • Guardar partida en curso (el juego que esté en curso) y el histórico del jugador:
    • Nombre (evidentemente)
    • Puntos acumulados
    • Partidas jugadas
    • Partidas ganadas
    • Máxima puntuación (record)
    • Nivel más alto al que ha llegado

  • Cargar una partida desde el punto guardado con un formato único de tres líneas:
    Código:
    nombre,puntos,partidas_jugadas,partidas_ganadas,record,nivel_más_alto
    partida_guardada
    tablero
  • Partida guardada será un bool que será True si existe una partida guarda (y por tanto una tercera línea que leer) o False si no es el caso.
  • El tablero en el archivo será un string: los elementos de una fila estarán separados por comas (,), cada fila estará separada de las demás por punto y coma (; ) y los elementos de cada casilla estarán separados por puntos en el formato:

    Código:
    volteada.valor.marca1.marca2.marca3.marca4
    • volteada y las marcas del 1 al 4 serán bools, mentras que valor será un string: O ('o' mayúscula para voltorb), 1, 2 o 3.
  • Borrar una partida (en realidad no la borren, muévanla a un directorio que les indicaré anteriormente, ingénienselas para que si ya había una partida "borrada" con ese nombre, no se pierda ninguna).
  • Representar UN ÚNICO tablero en la consola de forma clara para el jugador con toda la información: marcas para cada casilla o el número que hay si ya se volteó (leí que existe una forma de cambiar el color al texto de la consola con una librería de python, ahí lo dejo).
  • Contar con los siguientes elementos añadidos:
    • Contador de acciones: marcar, desmarcar y voltear constituyen acciones, cada una por separado. Debe indicar el número de acciones que lleva el jugador en la partida que está en curso.
      Es posible que más cosas se añadan prontamente.
  • Los voltorbs los representarán con una letra 'o' mayúscula.
  • Finalmente, en lugar de ir imprimiendo el nuevo estado del juego hacia abajo en la consola, deberán limpiar la pantalla (de la consola) y luego reimprimirlo todo.


Esquema pedido en las carpetas del juego:

Código:
tarea_2_nombreusuario #nombre de la carpeta de su juego
	files
		#aquí pondrán todos los archivos .py adicionales que usen
	saves
		trash (carpeta oculta)
		#y las partidas guardadas en formato txt
	main.py
	readme.txt #archivo presentación del juego, deberán poner instrucciones de uso

Material de consulta:

1. https://bulbapedia.bulbagarden.net/wiki/Voltorb_Flip

2. Giravoltorb | WikiDex | FANDOM powered by Wikia

3. Archivo con los puntos para cada nivel: https://mega.nz/#!weZgXYZS!Ee1WiTZkeKN3p8MjP4OViqn3Vwhe5Spr6XNZ9rCwHzU

Sobre el archivo, algunas cosas:
a) Está en formato .json, vean lo que pongo en la clase 13 sobre el tema.
2) Para el sexto nivel aparecen 18 puntajes: los primeros 6 serán para el nivel 6, los siguientes 6 para el 7 y los últimos para el nivel 8.
d) Ahí están todos los puntajes por nivel, en lugar del rango que da bulbapedia, queda para ustedes el sacar cuántos nºs2 y nºs3 hay en cada uno.
10) Descubran ustedes (porque yo no he encontrado en internet) cuántos voltorbs aparecen en cada uno de los niveles. Debe ser un rango. Ciudad Trigal no está tan lejos en pokémon HG/SS. Usen el emulador Desmume.
15) En un nivel, todos los posibles puntos tienen igual probabilidad de salir.

Para esta tarea entra HASTA la clase nº 13 subida hoy también. Tienen más de dos semanas y muchas herramientas, espero que todos entreguen la tarea y en los plazos.

 
Última edición:
Estado
Cerrado para nuevas respuestas.
Arriba