Enunciado Proyecto 1 2015

29
ENUNCIADO DEL PROYECTO DE LABORATORIO DEL CURSO DE MÉTODOS DE PROGRAMACIÓN 1-2015 DIInf War ® COORDINACIÓN DE MÉTODOS DE PROGRAMACIÓN

description

Proyecto metodos de programacion 2015

Transcript of Enunciado Proyecto 1 2015

Page 1: Enunciado Proyecto 1 2015

ENUNCIADO DEL PROYECTO DE

LABORATORIO DEL CURSO DE MÉTODOS

DE PROGRAMACIÓN

1-2015

DIInf War®

COORDINACIÓN DE MÉTODOS DE PROGRAMACIÓN

Page 2: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

i Métodos de programación 1-2015 Enunciado Laboratorio

CONTENIDO

Introducción.................................................................................................................... 1

Personajes ..................................................................................................................... 2

Terreno .......................................................................................................................... 5

Turnos ............................................................................................................................ 8

Experiencia .................................................................................................................... 8

Combate ...................................................................................................................... 10

Reclutamiento .............................................................................................................. 12

Mantenimiento .............................................................................................................. 12

Recuperación ............................................................................................................... 13

Dinámica de juego........................................................................................................ 13

Funcionalidades a cumplir ............................................................................................ 16

Requerimiento no funcionales ...................................................................................... 16

Entregables .................................................................................................................. 18

Entrega 1 .................................................................................................................. 18

Entrega 2 .................................................................................................................. 19

Entrega 3 .................................................................................................................. 21

Entrega 4 .................................................................................................................. 24

Page 3: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

2 Métodos de programación 1-2015 Enunciado Laboratorio

Índice de Figuras

Figura 1: Tablero de juego. ................................................................................................ 5

Figura 2: Rango Corto. .................................................................................................... 11

Figura 3: Rango Medio. ................................................................................................... 11

Figura 4: Rango largo. ..................................................................................................... 11

Page 4: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

3 Métodos de programación 1-2015 Enunciado Laboratorio

Índice de Tablas

Tabla 1: Estadísticas por unidad. ....................................................................................... 4

Tabla 2: Porcentaje de defensa de terrenos ...................................................................... 6

Tabla 3: Experiencia por nivel. ........................................................................................... 9

Tabla 4: Modificación de estadísticas de acuerdo al nivel y el personaje. .......................... 9

Tabla 5: Costo y mantención de unidades. ...................................................................... 12

Tabla 6: Recuperación por nivel. ..................................................................................... 13

Page 5: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

4 Métodos de programación 1-2015 Enunciado Laboratorio

Índice de Figuras

Ecuación 1: Experiencia ganada al derrotar al oponente. .................................................. 8

Ecuación 2: Probabilidades de ataque exitoso ................................................................. 10

Page 6: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

1 Métodos de programación 1-2015 Enunciado Laboratorio

INTRODUCCIÓN

Erase una calurosa y aburrida tarde de marzo, había acabado ya las vacaciones y el

comienzo del nuevo semestre estaba a puertas. Los profesores entonces tenían la tediosa

tarea de afinar los detalles del siguiente semestre. Fue entonces que los profesores del

Departamento de Ingeniería en Informática (DIInf), en un arranque de ocio, comenzaron a

ver las publicaciones de los nuevos alumnos en los foros. Luego de ver hilos de

recomendaciones de los cachorros de la Universidad y de reír con algunos comentarios

recordando hasta la abuelita de algunos profesores comenzaron a ver a quién

recomendaban más. Las recomendaciones no siempre seguían el mismo criterio,

recomendaban profesores por su buena disposición, porque explicaban de forma clara,

porque daban décimas, porque tenía ayudantes ricas (o ricos, según los gustos), porque

la otra opción era el profe vaquero, etc. Luego de ver tanto comentario entraron en una

dura discusión: ¿Quién es el profesor favorito de los niños? Esta pequeña duda se volvió

una lucha sangrienta y así comenzó el evento de las mil emociones; PC’s por los aires,

paradigmas voladores y la mejor lucha a “rrrraasss de la lona”1

El tiempo transcurrió y se dieron cuenta de que no podían seguir con esto, al menos no

sin conseguir un buen seguro médico, por lo cual decidieron resolverlo de una forma más

informática. Podían crear una aplicación que les permitiera resolverlo sin la necesidad de

hospitalizaciones. En ese momento la flojera los consumió y recordaron que los alumnos

de Métodos de Programación deben realizar un proyecto semestral, por lo que serían los

esclavos candidatos ideales para implementar dicho juego que acabará con las dudas.

El juego se trata principalmente de que en un mapa se encuentran dos profesores los

cuales luchan por derrotar al otro mediante el uso de sus aliados, los cuales pueden ser

alumnos, ayudantes entre otros personajes. La forma de vencer es cuando se derrota al

Profesor enemigo.

1 Tal como lo dice el comentarista Carlos Cabrera.

Page 7: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

2 Métodos de programación 1-2015 Enunciado Laboratorio

PERSONAJES

Dentro del juego existen siete personajes, cada uno con diferentes habilidades y

estadísticas, estos son:

Coordinador de ayudantes (C.A.): Destacados por su experiencia han

encontrado la forma de dirigir y no tener que estar siempre al filo de la acción.

Debido a esto poseen habilidades para atacar a distancia a sus oponentes.

Ayudante (Ay): Es la primera línea de defensa del profesor, leal y dispuesto a

realizar el trabajo duro. Por esto cuentan con altas características físicas y de

lucha cuerpo a cuerpo. Poseen la mayor cantidad de Heal Point (HP).

Alumno (Al): Este personaje aún no desarrolla sus habilidades completamente,

pero es versátil al momento de combatir. Sin embargo su inexperiencia le otorga

habilidades medias a lucha cuerpo a cuerpo y de ataque de alcance medio.

Pame (Pa): Un miembro de apoyo en el campo de batalla que alienta a las tropas.

Este personaje no cuenta con grandes habilidades de combate, pero su habilidad

para motivar y organizar a las tropas le permite regenerar la salud de sus aliados

convirtiéndola en un valioso elemento2.

Profesor (Pr): Es quien comanda a las unidades y es el elemento central en la

batalla. Posee habilidades especiales y en caso de ser derrotado se pierde el

juego. Este posee la habilidad de potenciar la fuerza de sus unidades, todas las

unidades aliadas que se encuentren en las 8 casillas adyacentes al Profesor

ganarán +5 de ataque.

Alumno nivel superior (A.N.S.): Alumno ya avanzado que tiene una amplia visión

del terreno. Permite obtener posiciones avanzadas del territorio y así atacar a sus

enemigos más lejanos.

Cachorro (Ca): Alumno novato que tiene poca vida y escasas habilidades de

ataque. Pero su costo y mantención3 lo hacen ser un personaje muy masivo en el

juego.

Las estadísticas para cada tipo de unidad a nivel 1 se muestran en la Tabla 1, dentro de

la cual se muestran las características de:

Heal Point (HP): Son los puntos de salud que posee cada unidad. Estos se van

agotando a medida que se recibe daño y se pueden recuperar a medida que

transcurre el combate. En caso de los HP de un aliado caigan a 0 o menos, esa

unidad queda fuera de combate.

Movimientos: Corresponde a la cantidad de casillas que se puede mover una

unidad en un turno.

2 El detalle de la regeneración se explica en el apartado de recuperación.

3 Temas tratado en la sección de costos y mantención.

Page 8: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

3 Métodos de programación 1-2015 Enunciado Laboratorio

Ataque: Es la fuerza con que golpea una unidad y equivale a la cantidad de HP

que se restará de la unidad defensora si el ataque se lleva a cabo de forma

correcta.

Cantidad de golpes: Número de veces que una unidad puede realizar ese ataque

por turno.

Naturaleza: La naturaleza de cada personaje se adquiere cuando se llama al

personaje y se obtiene de manera aleatoria sólo una. El profesor puede

seleccionar dos de las siguientes naturalezas: Estudioso, Normal, Deportista o

Incoherente. Las naturalezas son:

o Carretero: Por pasarlo tan bien ya no tiene la misma capacidad de realizar

los ataques. Disminuye en uno la cantidad de golpes.

o Estudioso: Como todo buen estudiante, saca lo mejor de sí y logra realizar

un punto más de ataque que el original.

o Incoherente: Habla demasiado y no sabe parar su lengua. Aumenta en

uno la cantidad de golpes.

o Normal: No adquiere característica especial y se conforma con lo que ya

sabe.

o Deportista: Su capacidad deportiva le permite avanzar un movimiento más

que el original.

o Deprimido: Como le ha ido tan mal en los estudios o la vida, disminuye

uno en ataque.

o Tortuga: Siempre va retrasado en todo, por lo que disminuye uno en los

movimientos.

Rango: Longitud del ataque, puede ser corto, medio o largo.

Page 9: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

4 Métodos de programación 1-2015 Enunciado Laboratorio

Tabla 1: Estadísticas por unidad.

Unidad HP Movimientos Ataque Cantidad de golpes Rango

Coordinador de

Ayudantes 35 2

6 3 Largo

2 2 Corto

Ayudante 50 3 7 3 Corto

9 2 Corto

Alumno 40 4 4 3 Medio

4 3 Corto

Pame 30 4 3 4 Medio

Profesor 75 3 - 2 Corto

- 3 Medio

Alumno nivel

superior 40 6

2 2 Corto

1 3 Medio

1 2 Largo

Cachorro 30 3 1 2 Corto

2 1 Medio

Page 10: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

5 Métodos de programación 1-2015 Enunciado Laboratorio

TERRENO

El tablero de juego se compone de casillas con un tamaño de 9x18 con una columna de 5

casillas extra a cada costado, las cuales corresponden al laboratorio de cada uno de los

profesores, siendo la casilla del medio la que corresponde al trono de éste (mesa del

Profesor), quedando algo similar a lo que se muestra en la Figura 1.

En el mapa pueden existir diferentes terrenos, permitiendo tener distintos grados de

defensa de los luchadores dependiendo donde se encuentra la unidad defensora. Los

terrenos y su probabilidad de defensa son los señalados en la Tabla 2.

Figura 1: Tablero de juego.

Sherwood

Dentro de las 9x18 casillas se deben generar de forma aleatoria 4 bosques de tamaño

1x1 casillas y ninguna unidad puede ubicarse o pasar por sobre este tipo de terreno.

Laboratorios

Los laboratorios ocupan 6 casillas, los forman una matriz de 3x2 o 2x3, y debe existir al

menos uno en el mapa, cuya ubicación es aleatoria. Estos son distintos a los laboratorios

iniciales de cada jugador, los cuales se ubican en los extremos del tablero de juego. Sus

características son las siguientes:

Cuando una unidad se ubica sobre un laboratorio sin dueño, éste pasa a estar

bajo el control del dueño de esa unidad.

Page 11: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

6 Métodos de programación 1-2015 Enunciado Laboratorio

Tabla 2: Porcentaje de defensa de terrenos

Terreno % de defensa

Pastos 40%

Foro 30%

EAO 50%

Laboratorio 70%

Kiosco 60%

Calle 0%

CiteCamp 50%

DIINF 60%

Sherwood -

Casitas 40%

Si una unidad se ubica sobre un laboratorio controlado por el oponente, pasa a

controlar el laboratorio solo si se posee más unidades en el laboratorio que su

oponente.

Al inicio del juego los laboratorios no poseen dueño, a excepción de los que se

encuentran a los extremos.

Kiosco

Los kioscos ocupan 4 casillas, de tamaño 2x2, y deben existir al menos dos en el mapa. Y

sus características son las siguientes:

Cuando una unidad se ubica sobre un kiosco sin dueño, ésta pasa a estar bajo el

control del dueño de esa unidad.

Si una unidad se ubica sobre un kiosco controlada por el oponente, pasa a

controlar la kiosco si se posee más unidades en el kiosco que su oponente.

Al inicio del juego los kioscos no poseen dueño.

Al inicio del turno del jugador obtiene 5 de oro por cada kioscos que controle.

Foro

Al inicio de cada turno el jugador debe pagar 1 de oro adicional por cada unidad que se

encuentre sobre este terreno.

Page 12: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

7 Métodos de programación 1-2015 Enunciado Laboratorio

Pastos

Al inicio del turno del jugador debe pagar 1 de oro por cada unidad que se encuentre

sobre este terreno. Además, esa unidad ganará +2 de ataque mientras se encuentre en

Pastos.

EAO

Este terreno es algo incierto, se sabe que muchos pasan por allí, pero nadie está seguro

de lo que sucede en su interior.

Calle

Terreno que no tiene características especiales en relación al combate o mantenimiento y

en donde generalmente permite transportarse de un terreno calle a otro (no

necesariamente debe conectar los lugares). Tiene la particularidad de que puede ser de

distintos terrenos: cemento, tierra, maicillo, asfalto, adoquines. Su tamaño es de una

casilla (1x1) y en caso de haber terreno de tipo calle en el campo de juego deben existir al

menos 2.

CiteCamp

Aquí los personajes, luego de pasar un día en los computadores adquieren la habilidad de

atacar +1 y +1 en cantidad de golpes en el siguiente turno (No se pueden acumular esta

habilidad).

DIINF

Parecido al CiteCamp, pero además es un mejor refugio para los habitantes de este

mundo. Gana +1 en ataque y +1 en cantidad de golpes mientras se mantenga ahí.

Casitas

Lugar de esparcimiento de antaño que motiva a los alumnos a seguir adelante. Es por

esto que las unidades que posean su nombre Alumno o Ayudate regeneran +5 de HP si al

inicio del turno del jugador se encuentran sobre un Terreno Casitas.

Page 13: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

8 Métodos de programación 1-2015 Enunciado Laboratorio

TURNOS

Los jugadores se podrán mover por este tablero cuadro por cuadro, en cualquiera de las 8

direcciones adyacentes, con un máximo indicado de movimientos, los cuales están

señalados para cada personaje en la Tabla 1. Para acabar el turno, existen dos opciones:

Que ya no le queden más movimientos a los jugadores de su equipo. En este

caso, se deberá ceder de inmediato el turno al otro jugador. Este cambio lo hace la

aplicación automáticamente, dando el aviso correspondiente.

Sin haber terminado los turnos, decidir finalizar el turno actual.

Para ambos casos, deberá hacer explícito de que pasa el turno al otro jugador.

EXPERIENCIA

Los personajes tienen la capacidad de subir de nivel durante el juego. A medida que

luchan van obteniendo experiencia cuando estos atacan. La experiencia que ganan es la

cantidad de puntos de daño que infringieron a su enemigo. Además, cuando dejan fuera

de combate a un personaje oponente se utiliza la Fórmula 1 para calcular la experiencia

obtenida. Cuando llegan al máximo de experiencia para ese nivel, pasan al otro nivel. En

la Tabla 3 se muestra la cantidad de experiencia necesaria de cada nivel para pasar al

siguiente. Cuando se llega al nivel 4, el pasar de nivel sólo significa un aumento en sus

HP de un 10 % y se quedará en ese nivel, acumulando más experiencia para poder

aumentar más aún sus HP.

Nivel_enemigo × 10 % × HP_enemigo Ecuación 1: Experiencia ganada al derrotar al oponente.

Los cambios en de estadísticas por nivel se muestran en la Tabla 4.

Page 14: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

9 Métodos de programación 1-2015 Enunciado Laboratorio

Tabla 3: Experiencia por nivel.

Unidad Exp. para nivel

2

Exp. para nivel

3

Exp. para nivel

4

Exp. para nivel 5 o

superior

C.A. 45 55 65 10 sobre nivel anterior

Ay 40 50 60 10 sobre nivel anterior

Al 35 45 55 10 sobre nivel anterior

Pa 50 55 60 10 sobre nivel anterior

Pr 50 65 80 15 sobre nivel anterior

A.N.S. 35 50 60 10 sobre nivel anterior

Ca 25 35 50 10 sobre nivel anterior

Tabla 4: Modificación de estadísticas de acuerdo al nivel y el personaje.

Unidad Estadística Nivel 2 Nivel 3 Nivel 4 Nivel 5 o superior

C.A.

Hp +10% +10% +10% +10%

Ataque +1 +1 +1 +1

Cantidad de golpes +0 +1 +0 +1 en niveles impares

+ 0 en los niveles pares

Al

Hp +20% +20% +20% +20%

Ataque +0 +1 +0 +1 en niveles impares

+ 0 en los niveles pares

Cantidad de golpes +0 +0 +1 +0 en niveles impares

+ 1 en los niveles pares

Ay

Hp +15% +15% +15% +10%

Ataque +0 +1 +1 +1 en niveles impares

+ 0 en los niveles pares

Cantidad de golpes +0 +0 +1 +0 en niveles impares

+ 1 en los niveles pares

Pa

Hp +5% +10% +15% +20%

Ataque +0 +1 +1 +1

Cantidad de golpes +1 +1 +1 +1

Pr

Hp +10% +10% +10% +10%

Ataque +1 +1 +1 +1

Cantidad de golpes +0 +1 +0 +1 en niveles impares

+ 0 en los niveles pares

A.N.S. Hp +15% +15% +15% +15%

Page 15: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

10 Métodos de programación 1-2015 Enunciado Laboratorio

Ataque +0 +1 +0 +1 en niveles impares

+ 0 en los niveles pares

Cantidad de golpes +0 +0 +1 +0 en niveles impares

+ 1 en los niveles pares

Ca

Hp +15% +15% +15% +10%

Ataque +0 +1 +1 +1 en niveles impares

+ 0 en los niveles pares

Cantidad de golpes +0 +0 +1 +0 en niveles impares

+ 1 en los niveles pares

COMBATE

Para realizar un ataque, la unidad oponente debe encontrarse en el área de ataque del

personaje. Si se decide atacar, la probabilidad de golpear corresponde a la fórmula 2.

Cada golpe se manejará de forma independiente con esa probabilidad. Por ejemplo, si un

ayudante ataca a otra unidad que se encuentre en pasto, atacará 3 veces, cada golpe

tendrá una probabilidad de un 60% de conectar y en cada golpe podrá realizar un daño de

7. Los golpes se realizan de una sola vez, es decir, si tiene 3 golpes, se realizan los 3

golpes del mismo tipo y no son divisibles (no es posible realizar un golpe de un tipo y

luego de otro).

(100 – defensa en terreno) % Ecuación 2: Probabilidades de ataque exitoso

Cuando se ataca, se escoge qué ataque se quiere realizar. Los ataques de corto alcance

atacan sólo a las casillas adyacentes a la unidad atacante (Figura 2), los ataques de

medio alcance atacan a cualquier casilla que se encuentre en un rango que cubre una

matriz de 5x5 con centro en la unidad atacante (Figura 3) y los ataques de largo alcance

poseen un rango de 7x7 casillas con centro en la unidad atacante exceptuando las

adyacentes al atacante (Figura 4).

Contraataque

El contraataque del enemigo se realizará después de cada ataque del personaje, es

decir, se realiza un ataque del personaje, luego le toca al enemigo y así sucesivamente

hasta que se acaben la cantidad de golpes que contengan. Si alguno de los dos

personajes se queda sin golpes antes que se le acaben al otro, este continuará atacando

hasta que se le acaben los golpes. La forma de decidir el tipo de contraataque es primero

por el tipo de ataque realizado del personaje que ataca. Por ejemplo si un ayudante ataca

con distancia media a un profesor, el ataque que deberá escoger es el de tipo medio. Si

no tiene del tipo de ataque se escogerá en el siguiente orden, siempre y cuando esté en el

Page 16: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

11 Métodos de programación 1-2015 Enunciado Laboratorio

rango de alcance: corto, medio y largo. Si un personaje al realizar el contraataque tiene

dos tipos iguales de rango, se escogerá al azar uno de ellos.

Figura 2: Rango Corto.

Figura 3: Rango Medio.

Figura 4: Rango largo.

Page 17: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

12 Métodos de programación 1-2015 Enunciado Laboratorio

RECLUTAMIENTO

En cada extremo del mapa, se encontrará un laboratorio que permitirá reclutar personajes

(también conocido como zona de respawn). Para poder reclutar tropas, el Profesor debe

encontrase en su trono. Las unidades aparecerán en las otras partes del laboratorio, en

caso de que el jugador posea control de un laboratorio generado en el mapa, podrá

seleccionar éste para que su unidad aparezca en él.

Una vez el jefe se encuentre en el trono, podrá escoger qué unidades llama para el

combate. Las unidades no podrán moverse hasta el siguiente turno.

Para poder reclutar una unidad el jugador debe pagar con oro el costo correspondiente.

En la Tabla 5 se listan los costos de cada unidad.

Tabla 5: Costo y mantención de unidades.

Unidad Costo Mantención

Profesor - 0

Coordinador de Ayudantes 10 5

Alumno 6 3

Ayudante 8 4

Pame 12 6

Alumno nivel superior 8 4

Cachorro 4 1

MANTENIMIENTO

Para tener las tropas se requiere mantenerlas con oro. La cantidad depende del tipo de

unidad y su nivel. Al inicio del turno del jugador se debe descontar del oro la mantención

de cada una de las unidades que éste posea. En caso de que el jugador no posea oro

suficiente para costear la mantención de sus unidades, su oro quedará en cero pudiendo

conservar las unidades que ya posee en juego (nunca se podrá quedar debiendo oro). Si

una unidad es dejada fuera de combate ya no se sigue pagando su mantención.

Page 18: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

13 Métodos de programación 1-2015 Enunciado Laboratorio

Cada vez que una unidad sube de nivel su mantención sube en +1 a excepción del

Profesor. La cantidad de oro a pagar por la mantención de cada unidad se ilustra en la

Tabla 5.

RECUPERACIÓN

Al inicio del turno del jugador, las unidades que se encuentran en las casillas adyacentes

a una Pame aliada recuperan 8 puntos de su HP. Esta es una habilidad acumulativa, así

que si una unidad se encuentra junto a dos Pames regenera 16 puntos de su HP.

Pame podrá aumentar su habilidad dependiendo de su nivel como lo indica la Tabla 6.

Tabla 6: Recuperación por nivel.

Nivel HP a curar

1 8

2 9

3 o superior 10

Además si una unidad no realiza acción en ese turno (ataque o movimiento) regenera 2

puntos de HP al iniciar el turno siguiente. Si una unidad se encuentra en una kiosco al

iniciar el turno del jugador, regenera 8 puntos de HP. Por último, si una unidad no realiza

movimientos en el turno anterior y se encuentra en una kiosco, se regenerará 10 puntos

(2 de no realizar movimientos + 8 de la kiosco). Y si además se encuentra al lado de una

Pame de nivel 1, se regenerará 18 puntos.

DINÁMICA DE JUEGO

Al iniciar una partida cada jugador tendrá que asignar 30 puntos de habilidad para

el ataque del Profesor y un nombre para cada ataque.

o Subir el ataque Corto tendrá un costo de 2 de estos puntos de habilidad.

o Subir el ataque Medio tendrá un costo de 3 de estos puntos de habilidad.

o El jugador puede asignar estos puntos como él estime conveniente,

incluso si decide no asignar todos los puntos.

Al iniciar el juego se podrá modificar la cantidad de oro que dan por defecto los

terrenos kioscos.

Page 19: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

14 Métodos de programación 1-2015 Enunciado Laboratorio

Al iniciar el juego, se debe solicitar la cantidad de kioscos presentes en el juego,

en donde la mínima sean 2 kioscos.

Existe una habilidad llamada As Táctico. Esta habilidad necesita que transcurran

10 turnos para ser utilizada y una vez activada deben transcurrir otros 10 turnos

del jugador para volver a usarse, los cuales no son acumulativos. Cuando el

jugador esté en condiciones de utilizar un As Táctico podrá elegir entre las

siguientes opciones:

o Escoger 4 casillas adyacentes entre sí (2x2), las unidades aliadas en

esa zona recuperan el total de sus HP. En caso de encontrarse el

Profesor en la zona, éste regenera el 25% de sus HP.

o Escoger una columna de 4 casillas en forma vertical (4x1). Las unidades

enemigas en la zona quedan con 1 de HP. El profesor no se ve afectado

por esta habilidad.

o Escoger 1 casilla (1x1). La unidad aliada en la casilla sube 2 niveles.

Todas las unidades al aparecer inician en nivel 1.

Cada jugador inicia con una cantidad de oro. Ésta varía según el tipo de juego que

es escogido al comenzar independientemente por cada jugador entre recursos

bajos, medios o altos.

Dos unidades no pueden estar en la misma casilla.

Si se desea avanzar una unidad y se encuentra una unidad aliada en el camino, se

puede saltar a ésta si se poseen los movimientos suficientes para alcanzar una

casilla vacía. Si es enemigo, no podrá pasar por encima de ella.

o El personaje que pase al lado de una unidad enemiga, no podrá pasar

por sobre ella, ni por el lado. Con lo que queda como alternativas atacar

o mover a otra posición no adyacente a ella.

El jugador puede escoger mover y atacar con una unidad en el mismo turno en el

orden que lo desee. Por ejemplo, una unidad ayudante puede atacar y luego

moverse para ubicarse en posición estratégicamente ventajosa o viceversa. Cada

personaje podrá atacar una vez durante el turno del jugador.

Cuando un bando esté controlado por una computadora:

La distribución de los puntos de habilidad para el ataque del Profesor se elegirá de

manera aleatoria.

El Profesor no se moverá de su trono.

Las unidades Pame:

o Se moverán hasta estar en una casilla adyacente a la unidad aliada más

cercana.

o Si se encuentra adyacente a una unidad aliada o ya no puede moverse y

se encuentra una unidad enemiga en rango, atacará.

El resto de unidades:

o Se moverán hacia el profesor contrario de forma aleatoria.

Page 20: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

15 Métodos de programación 1-2015 Enunciado Laboratorio

Hacia él con 50% de probabilidad.

Hacia atrás un 5% de probabilidad.

Hacia los lados un 45% de probabilidad.

Tener en cuenta que cada dirección puede tener 2 o 3 casillas a

dónde moverse, con la misma probabilidad entre ellas.

o En caso que exista una unidad enemiga en su rango se atacará.

En cada turno intentará reclutar la unidad de mayor coste que pueda pagar.

Page 21: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

16 Métodos de programación 1-2015 Enunciado Laboratorio

FUNCIONALIDADES A CUMPLIR

Se le solicita a su grupo de trabajo desarrollar una aplicación en la que se pueda

desarrollar el juego antes descrito. La aplicación debe cumplir con las siguientes

funcionalidades:

1. Debe permitir el enfrentamiento entre dos jugadores donde ambos utilizan la

misma aplicación.

2. Debe permitir el enfrentamiento entre un jugador y el computador.

3. Debe permitir la simulación completa de una batalla (enfrentamiento con ambos

bandos controlados por la computadora).

4. Un jugador deberá identificarse antes de comenzar la partida con un nombre.

5. Debe llevar un registro de las partidas ganadas y perdidas de cada jugador que

utilice la aplicación (incluyendo al mismo computador). El cual podrá ser

consultado utilizando la misma aplicación.

6. Debe contar con al menos 3 mapas predeterminados y la posibilidad de generar

mapas aleatoriamente con distintos terrenos.

7. Debe permitir generar torneos de 8 participantes con eliminación directa. Donde

participen jugadores y computadores en cualquier combinación que el usuario

desee.

8. La aplicación debe llevar un registro de las actividades de cada usuario de la

aplicación.

9. Debe darse una habilidad al terreno EAO.

10. Debe incluirse otra habilidad de As Táctico.

11. Se debe mostrar de alguna manera el porcentaje de defensa del terreno.

12. Opcionalmente, se puede mostrar las probabilidades de cómo podrían quedar los

personajes luego del ataque realizado.

REQUERIMIENTO NO FUNCIONALES

Los requerimientos no funcionales corresponden a características que debe tener la

aplicación, con respecto a su funcionamiento o arquitectura.

RNF 1. El sistema debe obtener las estadísticas de unidades a partir de una base

de datos.

RNF 2. La aplicación debe ser desarrollada en lenguaje Java aplicando orientación

a objetos.

RNF 3. La aplicación debe poseer el desarrollo de Software con interfaz gráfica

mediante el uso de Swing de Java.

Page 22: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

17 Métodos de programación 1-2015 Enunciado Laboratorio

RNF 4. La arquitectura de la aplicación debe estar dada con el modelo de

arquitectura MVC

RNF 5. Los rankings de victorias y derrotas deben guardarse en archivos de

extensión txt.

RNF 6: El mapa de juego debe ser representado con una interfaz gráfica en donde

se puedan distinguir las casillas del tablero, simbología, opciones de juego y

detalle de la última jugada.

Page 23: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

18 Métodos de programación 1-2015 Enunciado Laboratorio

ENTREGABLES

La entrega final consta de una aplicación funcional y la documentación necesaria de esta.

El sistema creado debe cumplir con todos los requerimientos funcionales de forma

completa (siendo un total de veintiséis requerimientos) a excepción de aquellos que estén

nombrados como opcionales, los cuales significarán una nota extra para las entregas 3.2

y 4; mientras que se deben cumplir con todos los requerimientos no funcionales.

La entrega estará dividida en 4 hitos, los cuales poseen una ponderación de 10, 20 30 y

40% respectivamente. La división de las entregas está basada en la estructura de la

construcción de un software, las cuales son el análisis del problema, el diseño de la

solución y la construcción. La última etapa consta de la mejora del software de las fallas

que éste pueda tener.

Cada grupo deberá estar compuesto por cuatro alumnos que pertenezcan a la misma

sección del laboratorio. No puede haber grupos compuestos por cinco o más integrantes,

a menos que el profesor lo estime conveniente, lo cual involucrará en una mayor

exigencia en cuanto a la calidad del trabajo presentado. En caso de que un alumno no

posea grupo, el profesor podrá designarlo a uno que él encuentre conveniente.

ENTREGA 1

La entrega N°1 consta de la etapa de análisis del problema y el inicio de la etapa de

diseño, en donde el grupo de trabajo deberá hacer entrega de:

Informe:

El informe debe contener una portada, introducción, descripción del problema,

descripción de la solución y conclusiones.

Introducción: Debe tener un acercamiento para el lector hacia el problema a

resolver, además será necesario que realice un marco teórico en el cual se

explique los conceptos utilizados para resolver la problemática a desarrollar,

dentro de la introducción también deberá indicar la estructura del informe y su

organización.

Descripción del problema: Se debe explicar en qué consiste el problema general

y el contexto de éste.

Descripción de la solución: Se debe explicar cómo se afrontará el problema y la

resolución de éste, indicando el método de resolución del problema, su

justificación explicando por qué se escoge ese método. En caso de existir sub

problemas se debe hacer el mismo proceso.

Page 24: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

19 Métodos de programación 1-2015 Enunciado Laboratorio

Conclusiones: Se debe indicar cuales son los resultados del problema y que es lo

que queda por realizar para resolver el problema general.

Anexo: Como anexo deben entregar el documento relleno correspondiente al

desarrollo del trabajo dentro del grupo y los tiempos destinados a éste.

Además el informe deberá contener un índice de contenidos, figuras y tablas.

La estructura del informe y el formato estará disponible en el sitio de

UdeSantiagoVirtual del curso.

Presentación:

La presentación deberá contener la misma estructura del informe, la cual deberá

poseer una duración máxima de 15 minutos.

Los puntos a evaluar dentro de esta entrega corresponden a los requerimientos señalados

en la entrega general.

La entrega de los documentos correspondientes a esta entrega (informe y presentación)

deben ser subidos en el sitio de UdeSantiagoVirtual el día lunes 13 de abril de 2015

antes de las 23:55 horas.

Las presentaciones serán llevadas a cabo en el horario de laboratorio correspondiente a

la semana del 13 de abril de 2015.

La evaluación de esta etapa está dividida en:

Presentación: Tiene un 40%, lo cual está dividida en un 30% en la forma y un

70% del fondo de la presentación.

Informe: Tiene un 60% de ponderación para esta entrega. Este tendrá un 10% en

formato, 20% ortografía y redacción, y 70% fondo del informe.

La entrega mínima de esta etapa corresponde a un informe y una presentación que

abarque al menos ocho requerimientos tratados con su problema.

ENTREGA 2

Para la entrega N°2, correspondiente al diseño, el cuerpo docente dejará disponible

durante la semana del 13 de abril de 2015 los documentos relacionados a:

Diagrama de Clases.

Diagramas de Secuencia.

En cuanto al Diagrama de Clases, este se encontrará incompleto, faltándole:

Los atributos de algunas de las clases.

Page 25: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

20 Métodos de programación 1-2015 Enunciado Laboratorio

A una clase, seleccionada por el cuerpo docente, le faltaran las relaciones.

A una clase le faltará su nombre.

En cuanto a los Diagramas de Secuencia, se entregarán:

Tres Diagramas de Secuencia de forma completa.

Dos Diagramas de Secuencia completos, pero sin indicar a qué problema

corresponden.

El grupo deberá hacer entrega de un informe que contenga:

Introducción: Debe tener un acercamiento para el lector hacia el problema a los

temas tratados (desarrollo de software, lenguajes de modelado, UML, diagramas

de clases y de secuencia), dentro de la introducción también deberá indicar la

estructura del informe y su organización.

Descripción del problema: Se debe explicar en qué consiste el problema general

y el contexto de éste.

Descripción de la solución: Se debe explicar cómo se afrontará el problema y la

resolución de éste, indicando el método de resolución del problema, su

justificación explicando por qué se escoge ese método. En caso de existir sub

problemas se debe hacer el mismo proceso.

Diseño de la aplicación: Se debe explicar cómo estará estructurada la aplicación

de acuerdo al Diagramas de Clases y los Diagramas de Secuencia, los cuales

serán entregados por el cuerpo docente pero completados e interpretados por el

grupo de trabajo. En esta sección el grupo también debe hacer entrega de los

Diagramas de Secuencia faltantes de acuerdo a los Casos de Uso no tratados por

el cuerpo docente (dos de estos serán dados por el cuerpo docente sin indicar a

cual corresponde).

Conclusiones: Se debe indicar cuáles han sido los resultados de esta etapa y que

es lo que se espera que suceda en la próxima. También deben hacer saber acá

cuáles son los posibles problemas que esperan en la etapa de desarrollo y como

los piensan abordar.

Anexo: Como anexo deben entregar el documento relleno correspondiente al

desarrollo del trabajo dentro del grupo y los tiempos destinados a éste.

Además el informe deberá contener un índice de contenidos, figuras y tablas.

Las imágenes deben ser legibles dentro del informe.

La estructura del informe y el formato estará disponible en el sitio de

UdeSantiagoVirtual del curso.

También tendrán que realizar una presentación, la que deberá contener la misma

estructura del informe, y tendrá que poseer una duración máxima de 15 minutos.

Page 26: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

21 Métodos de programación 1-2015 Enunciado Laboratorio

La entrega de los documentos correspondientes a esta entrega (informe y presentación)

deben ser subidos en el sitio de UdeSantiagoVirtual el día lunes 04 de mayo de 2015

antes de las 23:55 horas.

Las presentaciones serán llevadas a cabo en el horario de laboratorio correspondiente a

la semana del 04 de mayo de 2015.

La evaluación de esta etapa está dividida en:

Presentación: Tiene un 30%, lo cual está dividida en un 30% en la forma y un

70% del fondo de la presentación.

Informe: Tiene un 70% de ponderación. Este tendrá una nota completamente por

el fondo del informe, pero cada cuatro errores ortográficos, de redacción y de

formato será descontada una décima de la nota del informe.

La entrega mínima de esta etapa corresponde a un informe y una presentación en que el

Diagrama de Clases se encuentre completo e interpretado, al igual que todos los

Diagramas de Secuencia entregados por el cuerpo docente. También, debe estar el

anexo completo en conjunto a otros ocho Diagramas de Secuencia hechos por el grupo.

ENTREGA 3

Esta entrega posee dos etapas, una entrega previa, llamada Entrega 3.1 y 3.2

correspondiente a la entrega 3. Ambas entregas son obligatorias, pero solo la final se

evaluará, siendo de esta forma la entrega 3.1 formativa, con el fin de evitar errores graves

en la entrega 3.2.

Entrega 3.1

Con respecto a la entrega 3.1, se debe tener tanto la aplicación como el informe 3 tal

como se indica más adelante. El avance de este debe ser el mayor posible, dado que

entre menos avance tengan más errores se podrían mencionar posteriormente. Esta

entrega deberá ser presentada durante la semana del 25 de mayo, en horario de

laboratorio, el cuerpo docente irá revisando cada aplicación e informe durante la clase del

laboratorio correspondiente.

Page 27: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

22 Métodos de programación 1-2015 Enunciado Laboratorio

Entrega 3.2

En cuanto a la entrega 3.2 se solicitarán esta vez tres elementos, los cuales son un

informe, una presentación y la aplicación.

El informe deberá tener como contenidos los siguientes puntos:

Introducción: Debe tener un acercamiento para el lector hacia el problema a los

temas tratados (desarrollo de software, lenguaje de programación orientado a

objetos y la descripción del lenguaje de programación utilizado, arquitectura de

software, la arquitectura MVC e introducir al concepto de base de datos), dentro de

la introducción también deberá indicar la estructura del informe y su organización.

Descripción del problema: Se debe explicar en qué consiste el problema general

y el contexto de éste.

Descripción de la solución: Se debe explicar cómo se afrontará el problema y la

resolución de éste, indicando el método de resolución del problema, su

justificación explicando por qué se escoge ese método. En caso de existir sub

problemas se debe hacer el mismo proceso.

Diseño de la aplicación: Se debe explicar cómo estará estructurada la aplicación

de acuerdo al Diagramas de Clases y los Diagramas de Secuencia, los cuales

deben poseer su respectiva descripción y justificación. En esta parte también se

debe mencionar la arquitectura que se está utilizando en esta ocasión como

también la descripción de la base de datos.

Descripción de la aplicación: Se debe mostrar cómo está estructurada la

aplicación, además se deben establecer las comparaciones entre el diseño y la

construcción final. También se debe mencionar como la arquitectura MVC está

aplicada a la solución. Debe indicar a su vez como se comunica la aplicación con

la base de datos y cómo utilizó está última para poblar su aplicación.

Conclusiones: Se debe indicar cuales han sido los resultados de esta etapa y

cuáles son los problemas que posee la aplicación vistos por el grupo de trabajo,

además de analizar la aplicación de las estrategias de resolución de problemas en

la aplicación, mostrando sus ventajas y desventajas. Otro punto que tendrán que

abordar será la ejecución del código de acuerdo a las pruebas enviadas por el

cuerpo docente, en donde deberán analizar sus resultados.

Anexo: Como anexo deben entregar el documento relleno correspondiente al

desarrollo del trabajo dentro del grupo y los tiempos destinados a éste. También

deberán llenar el informe de pruebas que se les dejará disponible en el sitio del

curso.

Además el informe deberá contener un índice de contenidos, figuras y tablas.

Las imágenes deben ser legibles dentro del informe.

La estructura del informe y el formato estará disponible en el sitio de

UdeSantiagoVirtual del curso.

Page 28: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

23 Métodos de programación 1-2015 Enunciado Laboratorio

El programa debe cumplir con lo siguiente:

Una aplicación desarrollada en Java.

La aplicación debe estar escrita en el paradigma de Programación

Orientada a Objetos.

La aplicación debe poseer claramente una arquitectura MVC.

La aplicación debe poseer interfaz gráfica para que el usuario maneje las

opciones que el sistema le permita.

La aplicación debe cumplir con todos los requerimientos mencionados en la

entrega general.

La aplicación debe poseer un control de errores para las acciones del

usuario.

La aplicación debe manejar la información desde la base de datos.

En la presentación el grupo deberá mostrar la aplicación funcionando, descargada

desde la plataforma de UdeSantiagoVirtual, deben mostrar la ejecución completa de

dos requerimientos funcionales, de los cuales uno será seleccionado por el grupo deberá

escoger uno e informarlo antes de la presentación, mientras que el profesor, antes de la

presentación escogerá otro. Al momento de la presentación de los requerimientos el

grupo debe mostrar cómo se comunica su aplicación internamente para cumplir con el

objetivo, realizando un paralelo con el diagrama de Secuencia diseñado para el

requerimiento. Esta presentación no tendrá una duración determinada con anterioridad.

La entrega de los documentos correspondientes a esta entrega (informe y código) deben

ser subidos en el sito de UdeSantiagoVirtual el día lunes 15 de junio de 2015 antes de

las 23:55 horas.

Las presentaciones serán llevadas a cabo en el horario de laboratorio correspondiente a

la semana del 15 de junio de 2015.

La evaluación de esta etapa está dividida en:

Presentación: Tiene un 30%, lo cual está dividida en un 30% en la forma y un

70% del fondo de la presentación.

Informe: Tiene un 40% de ponderación. Este tendrá una nota completamente por

el fondo del informe, pero cada cuatro errores ortográficos, de redacción y de

formato será descontada una décima de la nota del informe.

Aplicación: Tiene un 30% de ponderación, la cual estará compuesta en un 40%

en la correcta aplicación de la Programación Orientada a Objetos y el orden del

código, un 30% de la arquitectura MVC y un 30% con respecto al funcionamiento

de este.

Page 29: Enunciado Proyecto 1 2015

Universidad de Santiago de Chile

Facultad de Ingeniería

Departamento de Ingeniería Informática

Métodos de Programación

24 Métodos de programación 1-2015 Enunciado Laboratorio

La entrega mínima de esta etapa corresponde a un informe que contenga todos los

puntos señalados, la presentación de la aplicación y la aplicación en sí, la cual debe

cumplir los requerimientos no funcionales antes mencionados, y como requerimiento

funcional debe tener al menos dos requerimientos funcionales actuado.

ENTREGA 4

La entrega 4 corresponde a la corrección completa de la entrega 3.2 de acuerdo a los

errores indicados por el cuerpo docente.

La entrega de este Hito deberá hacerse por la plataforma de UdeSantiagoVirtual con al

menos 24 horas de anticipación a la clase, dejando de esta forma las entregas de la

siguiente forma:

Esta entrega posee los mismos elementos y ponderaciones que la entrega 3.2.

La entrega mínima de esta etapa corresponde a un informe que contenga todos los

puntos señalados, la presentación de la aplicación y la aplicación en sí, la cual debe

cumplir los requerimientos no funcionales antes mencionados, y como requerimiento

funcional debe tener al menos 3 requerimientos no funcionales ejecutando.

La no entrega de uno de los hitos, significará la nota mínima directamente para el

proyecto.

Entregas en general

Todas las entregas poseen una entrega mínima, cuyo incumplimiento significará la nota

mínima en el hito. Además de lo indicado en cada uno de los ítems, cada grupo deberá

realizar la corrección de la entrega anterior, dejado de esta forma cada ítem con al menos

una corrección por parte del profesor [1].i

i [1] Queda a criterio del profesor si los ítems necesitan ser corregidos nuevamente, el cual

también verá como lo evaluará.