Materia
Ejercicios


Tarea 1: Tortuntitos

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, for 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).
  • Familiarizarse con el uso de módulos, en este caso Turtle para hacer dibujos sencillos.

Enunciado

La tarea consiste en programar el juego Timbiriche o Puntito en Python utilizando el módulo Turtle. La tortuga y las funciones que la manejan se encuentran disponibles en el módulo Turtle de Python. (Revisa la documentación que hemos preparado).

Reglas del Juego

Puntito es un competitivo juego de estrategia, altamente competitivo, donde participan 2 o más jugadores. Se juega sobre un papel cuadriculado, donde se han marcado todos los vértices con puntitos. El objetivo del juego es unir dos puntos con la intensión de generar un cuadrado, el jugador que más cuadrados logre generar es el ganador.

Puntito se juega por turnos, alternando entre los jugadores. En cada turno, un jugador conecta dos puntitos (dibujar una arista). Si tras dibujar la arista se forma un cuadrado, el jugador identifica éste como suyo y juega otro turno. Esta secuencia está ejemplificada en la siguiente imágen.

../../_images/timbiriche.png

Qué hay que implementar

Su objetivo es programar la lógica del juego Puntito utilizando el módulo Turtle, siguiendo los siguientes requerimiento:

Al iniciar el programa se debe ingresar el nombre de los jugadores y el color que utilizarán (vea los colores permitidos en la documentación oficial), ver imagen de ejemplo.

../../_images/2014-2_Inicio.png

Una vez ingresado el nombre de los jugadores, se debe dibujar el tablero, ver imagen.

../../_images/2014-2_Tablero.png

A continuación se deben dibujar una grilla de 9 puntitos de ancho y 9 de alto como muestra la siguiente imagen.

../../_images/2014-2_Tablero2.png

Una vez dibujado el tablero comienza el juego. Su programa deberá indicar a que jugador le corresponde jugar, solicitando el punto (x, y) desde el cual se dibujará una línea. Luego deberá preguntar si la línea se dibujará de forma vertical u horizontal. La siguiente imagen muestra varios turnos entre dos jugadores.

../../_images/2014-2_Jugar.png

Note que si se solicita hacer un movimiento inválido (que escape del tablero 9x9) o ya realizado, el programa debe alertar ésto y pedir una jugada nuevamente. Las líneas dibujadas deben ser del color que el jugador en turno seleccionó.

Cuando un jugador dibuja la última arista de un cuadrado, entonces el programa debe dibujar un círculo del color elegido por el jugador. En dicho caso, el jugador debe seguir jugando. La siguiente imagen muestra las jugadas de la imagen anterior.

../../_images/2014-2_Tablero_ejem.png

Note que pueden darse casos que al trasar una línea se esté cerrando dos cuadrados a la vez, si esto ocurre se debe marcar ambos cuadrados con el color del jugador que dibujó la línea.

Finalmente, una vez unidos todos los puntos del tablero, usted debe felicitar al ganador o indicar que hubo un empate.

Consideraciones

No se ingresará valores no permitidos en las entradas de datos, es decir, en las coordenadas de los puntos sólo se ingresarán valores enteros y en la orientación de la línea sólo se ingresará los caracteres v o h.

Para resolver la tarea No puede hacer uso de materia más avanzada que la vista para el primer certamen (Ej: uso de funciones, listas y otros).

Entrega

La fecha de entrega es el Viernes 26 de Septiembre 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.