Materia
Ejercicios


Tarea 1: TurtLudo

Objetivos de aprendizaje

Después de resolver la tarea 1, usted será capaz de:

  • Implementar un programa que requiera de entradas y salidas.
  • Diseñar e implementar programas simples usando algunas sentencias elementales de Python (asignaciones, if y While).
  • Entender el proceso de desarrolar y probar un programa en el computador usando las herramientas de desarrollo del lenguaje (Intérprete, consola, IDE).
  • Usar el módulo Turtle para hacer dibujos sencillos.
  • Implementar funciones básicas para evitar repetir código dentro de un programa.

Enunciado

La tarea consiste en desarrollar un desconocido y misterioso juego de mesa conocido como TurtLudo. Para ello deberán ser capaces de diseñar e implementar un programa en python que mediante instrucciones del módulo Turtle, dibuje el tablero de juego, junto con simular el trayecto de los jugadores hasta que exista un ganador. Dado que Turludo es un juego desconocido, los profesores y ayudantes de la asignatura se han encargado de recopilar las reglas, las que se presentarán pronto para que los alumnos puedan comenzar a jugar lo más inmediato posible.

El juego tiene un tablero cuadrado sobre el cual se han identificado cuatro bases, las que se han coloreado de distintos colores y que pertenecen a los jugadores de la partida. La zona principal del juego corresponde a la cuadrícula con forma de cruz, que une las distintas bases y que será el camino por donde los jugadores moverán sus fichas. Mediante el lanzamiento de un dado, los jugadores podrán mover su ficha siguiendo la trayectoria que bordea la cruz, tantos espacios como indique el número obtenido en el dado. Una vez que la ficha de un jugador haya dado la vuelta completa, deberá entrar al centro del tablero, siguiendo la correspondiente flecha de color. El primer jugador que posicione su ficha en la punta de la flecha, sera considerado el ganador. A continuación se muestra la forma que presenta el tablero de TurtLudo.

../../_images/2015_1_tablero.png

Reglas

A continuación se listan las reglas del juego, sobre las cuales ustedes deberán realizar su tarea.

  • TurtLudo es multijugador. Hasta cuatro personas pueden estar jugando en simultáneo. Sin embargo, se necesitan al menos dos personas para poder iniciar una partida.
  • Los colores están definidos, por lo cual si se suman jugadores, éstos deberán adoptar los colores según el siguiente orden: Jugador 1, color Rojo. Jugador 2, color Azúl, Jugador 3, color Amarillo, Jugador 4, color Verde.
  • Cada jugador posee una única ficha para jugar. Esta ficha debe ser ubicada en una zona especial del tablero y desde ahí movilizarse a la zona principal de juego según indique el valor del dado.
../../_images/2015_1_tablero_fichas.png
  • La partida se desarrolla por turnos. En cada turno un jugador deberá lanzar un dado y mover su ficha la cantidad de cuadrículas que indique el dado. El sentido de movimiento es inverso a las manecillas del reloj.
  • Si el valor obtenido por el dado es el número 6, el jugador deberá lanzar nuevamente el dado, es decir número 6 repite jugada.
  • Una vez terminado el movimiento de un jugador, si este cae en la misma casilla que ya ocupada otro jugador, el jugador que ya se encontraba en dicha casilla deberá comenzar desde el inicio.
  • Para ganar el juego, se deberá llegar a la zona final con el número exacto de movimientos. Si por alguna razón el valor del dado excede el camino que queda por recorrer, deberá retroceder.
  • El primero que llegue exactamente a la meta, gana.

Qué hay que implementar

Su misión consiste en simular el juego TurtLudo, respetando todas las reglas señaladas anteriormente. Para ello deberán crear un programa que realice las siguientes acciones:

  • El programa debe crear el tablero, tal cual se presenta en la siguiente imagen. Las zonas del juego quedan fijadas según la imagen de referencia. El orden en el cual creas la figura no tiene relevancia, sin embargo, una vez finalizado, debe quedar tal cual se presenta en la imagen. No se puede comenzar la partida si no existe el tablero.
../../_images/2015_1_tablero.png
  • Los cuadrados de colores presentes en cada esquina (los cuadrados grandes que representan la base del jugador) son solo referenciales. Es la única parte del tablero que puede no dibujarse. Sin embargo, es obligación dibujar la ficha en la zona de partida.
  • Al iniciar el programa, este deberá pedir la cantidad de jugadores que participaran en la partida TurtLudo. Una vez indicado esto por parte del jugador, deberá pedir, mediante turnos, que los jugadores lancen el dado. (El sistema debe validar que la cantidad de jugadores ingresada sea 2 a 4).
../../_images/2015_1_menu.png
  • Una vez lanzado el dado (ingresada una letra l por parte del jugador), las fichas deberán moverse de acuerdo al número obtenido en el dado, el trayecto realizado por las fichas se debe reflejar en el tablero (desplazamiento de las fichas), respetando las reglas mencionadas anteriomente.
../../_images/2015_1_lanzamiento.png
  • Cuando un jugador logre completar satisfactoriamente el circuito, el programa deberá finalizar, indicando el número del jugador que ganó la partida.
../../_images/2015_1_ganador.png
  • El primero que llegue a la meta, gana.

Datos de ayuda

A continuación te presentamos datos de utilidad que debes tener en consideración a la hora de desarrollar tu tarea.

  • El tablero debe ser cuadrado. Siendo más precisos, TurtLudo se representa como un sistema de coordenadas (plano cartesiano). El centro (0,0) se encuentra en la unión de todas las puntas de flechas.
  • El tamaño de cada cuadrícula individual debe ser de 40 Turtle unidades. Te darás cuenta de cómo funciona cuando comiences a interiorizarte con el módulo Turtle. (el tamaño puede igual variar pero si lo hace, cambian estos puntos de referencia).
  • La dimensión total del tablero es de 620 x 620.
  • La zona inicial donde deberán estar presentes las fichas antes de comenzar la partida corresponden a las siguientes coordenas para cada jugador: rojo: (-280,80) - azúl: (280,-80), amarillo: (-80,-280), verde: (80,280).

A tener en consideración

TurtLudo es un juego misterioso y desconocido. Tanto en su forma de juego como en su creación. Por lo mismo, no desaprovechen el tiempo e intenten avanzar cada vez que puedan y crean sea necesario. Pueden revisar la documentación que hemos preparado para ustedes sobre el módulo Turtle y las funciones.

Aclaraciones a consultas realizadas por Facebook

Como es la tarea 1, ustedes sólo podrán usar la materia vista para el certamen 1:

  • Condicionales (IF)
  • Ciclo while
  • Funciones

Para el caso del módulo Turtle, ustedes podrán usarlo como mejor estimen conveniente para tener una mejor información sobre este módulo haga clic aquí.

Entrega

La fecha de entrega es el Viernes 24 de Abril a las 23:00 hrs.

La tarea debe ser resuelta en equipos de dos o tres personas. De lo contrario habrá penalización en la nota.

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 con el nombre tarea-1-RUT.py, reemplazando RUT por el RUT del integrante que subirá la tarea. Sólo debe ir el RUT sin el dígito verificador. Por ejemplo: tarea-1-18000123.py.

Al principio del archivo 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 máximo un día de retraso, pero serán sancionadas.

Políticas de copia

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.