• No se han encontrado resultados

EnunciadoTP4

N/A
N/A
Protected

Academic year: 2020

Share "EnunciadoTP4"

Copied!
12
0
0

Texto completo

(1)

Algoritmos y Programaci´

on I (75.40)

Trabajo Pr´

actico N

o

4

Weiss-Fiuba-Schwarz o Juego de tematica ajustable

9 de junio de 2015

1.

Consigna

En este Trabajo Pr´actico se provee una implementaci´on incompleta de un juego de cartas, y se pide implementar algunas funcionalidades faltantes.

2.

Reglas del juego

El juego es una versi´on reducida del juego de cartas ”Weiss Schwarz”. Al igual que el original, este posee una tem´atica ajustable a gusto del usuario.

2.1.

Cartas

En el juego se encuentran 3 tipos diferentes de carta:

Personaje Son los que combaten en el campo frontal o dan soporte con sus efectos desde la retaguardia. Los efectos de estas cartas duran mientras est´en en el campo.

Evento Proporcionan soporte mediante sus efectos, los cuales duran hasta el final del turno que fueron jugados.

(2)

2.2.

Mazo

Cada mazo de Weiss Schwarz consta de exactamente 50 cartas. Cada jugador tiene su propio mazo1 formado por las cartas que quiera2 siempre que cumpla con las siguientes reglas:

1. El mazo tiene exactamente 50 cartas

2. El mazo tiene como m´aximo 4 copias de cada carta

3. El mazo tiene como m´aximo 8 cartas de tipo climax

2.3.

Desarrollo del juego

El juego se desarrolla por turnos. Al principio del juego, se sortea de for-ma aleatoria quien arranca, si el jugador del lado blanco (Weiss) o el jugador del lado negro (Schwarz). El jugador que tiene el primer turno arranca con 4 cartas en mano, y el segundo con 5. Cada turno del juego se desarrolla de la siguiente manera:

Turno:

1. Sacar una carta del mazo y agregarla a la mano

2. Aplicar efectos de cartas en el campo

3. Fase de clock: Aumentar clock?

a) (S´ı) Bajar una carta de la mano al ´area de clock, robar dos del mazo

4. Primer fase principal: Jugar cartas

a) (Si tienen efecto) Aplicar el efecto de las cartas jugadas

b) (Si son personajes) Elegir d´onde ponerlos

5. Fase de combate: Atacar

a) (Si ataca y tiene una carta enfrente) Combate entre cartas 1) (Si gana) Matar a la otra carta, infligir da˜no al oponente

1En el programa se cargan automaticamente los mazos

weiss.csvyschwarz.csvpara el jugador Weiss y el jugador Schwarz respectivamente.

2Como gu´ıa para crear un mazo se puede seguir la propuesta en:

(3)

a0 Se determina el da˜no que la carta inflige al oponente

b0 El oponente saca de su mazo un numero de cartas igual al da˜no que le inflige la carta y las coloca en la zona de clock

c0 (Si la zona de clock tiene 7 o mas cartas) El jugador au-menta su nivel

2) (Si pierde) Matar a la carta atacante 3) (Si empata) Matar a las 2 cartas

b) (Si ataca y no tiene una carta enfrente) Ataque directo 1) Se determina el da˜no que la carta inflige al oponente

2) El oponente saca de su mazo un numero de cartas igual al da˜no que le inflige la carta y las coloca en la zona de clock 3) (Si la zona de clock tiene 7 o mas cartas) El jugador aumenta

su nivel

6. Segunda fase principal: Idem a la primera fase principal

7. Fin de turno

a) Desaplicar efectos de cartas en el campo y cartas temporales

b) (Si se acabaron las cartas del mazo) Mover las cartas de la pila de descarte al mazo (dejando el descarte vac´ıo) y mezclar.

c) Pasar al turno siguiente

El juego termina cuando alguno de los dos jugadores alcanza el nivel m´aximo (que por defecto es 4). El que haya llegado a dicho nivel es el per-dedor.

3.

Especificaciones

El c´odigo a completar se encuentra dentro de los archivos tablero.py y mazo.py.

Se deben completar los metodos que se detallan a continuaci´on.

(4)

def i n i c i a r _ t u r n o ( s e l f ) : """

I n i c i a el t u r n o a p l i c a n d o las h a b i l i d a d e s que q u e d a r o n en el c a m p o d u r a n t e el t u r n o

a n t e r i o r

en el m i s m o o r d e n que f u e r o n a p l i c a d o en e s t e . : r e t u r n : No t i e n e v a l o r de r e t o r n o .

"""

r a i s e N o t I m p l e m e n t e d E r r o r

def t e r m i n a r _ t u r n o ( s e l f ) : """

T e r m i n a el t u r n o . R e v i e r t e t o d o s los e f e c t o s de las c a r t a s a p l i c a d a s en el c a m p o

en el o r d e n i n v e r s o en que f u e r o n a p l i c a d a s . Las h a b i l i d a d e s de t i p o E F E C T O _ C O N T I N U O d e b e n g u a r d a r s e

p a r a ser a p l i c a d a s en el p r o x i m o t u r n o ( en el m i s m o o r d e n en el que se a p l i c a r o n en e s t e t u r n o ) .

: r e t u r n : No t i e n e t i p o de r e t o r n o . """

r a i s e N o t I m p l e m e n t e d E r r o r

def a p l i c a r _ h a b i l i d a d e s _ e n _ c a r t a ( self , c a r d ) : """

A p l i c a las h a b i l i d a d e s a c t i v a s en el c a m p o a la c a r t a p a s a d a c o m o p a r a m e t r o . Se d e b e n

a p l i c a r en el o r d e n que se a p l i c a r o n o r i g i n a l m e n t e .

: p a r a m c a r t a : C a r t a s o b r e la que a p l i c a r las h a b i l i d a d e s .

: r e t u r n : No t i e n e v a l o r de r e t o r n o . """

r a i s e N o t I m p l e m e n t e d E r r o r

def a p l i c a r _ h a b i l i d a d _ s o b r e _ t a b l e r o ( self , jugador , h a b i l i d a d , c o n t i n u i d a d ) :

"""

(5)

c a m p o del j u g a d o r p a s a d o .

: p a r a m j u g a d o r : J u g a d o r en el que se a p l i c a la h a b i l i d a d .

: p a r a m h a b i l i d a d : R e f e r e n c i a a la h a b i l i d a d a a p l i c a r . D e b e ser un o b j e t o de una c l a s e que h e r e d e de H a b i l i d a d .

: p a r a m c o n t i n u i d a d : I n d i c a si es una h a b i l i d a d c o n t i n u a o que s o l o t i e n e e f e c t o por un t u r n o . D e b e ser una de

las c o n s t a n t e s

E F E C T O _ C O N T I N U O o E F E C T O _ T E M P O R A L . : r e t u r n : No t i e n e v a l o r de r e t o r n o . """

r a i s e N o t I m p l e m e n t e d E r r o r

def r e v e r t i r _ h a b i l i d a d e s _ s o b r e _ c a r t a ( self , c a r t a ) : """

R e v i e r t e los e f e c t o s s o b r e la c a r t a p a s a d a c o m o p a r a m t e r o en el o r d e n i n v e r s o en que f u e r o n a p l i c a d o s .

: p a r a m c a r t a : C a r t a a la que se le d e b e n r e v e r t i r las h a b i l i d a d e s

: r e t u r n : No t i e n e v a l o r de r e t o r n o . """

r a i s e N o t I m p l e m e n t e d E r r o r

def r e m o v e r _ h a b i l i d a d ( self , jugador , h a b i l i d a d ) : """

R e m u e v e la h a b i l i d a d p a s a d a por p a r a m e t r o ,

a p l i c a d a por el j u g a d o r pasado , de la p i l a de h a b i l i d a d e s a p l i c a d a s .

: p a r a m j u g a d o r : J u g a d o r que a p l i c o la h a b i l i d a d o r i g i n a l m e n t e . D e b e ser una de las c o n s t a n t e s

W E I S S o S C H W A R Z .

: p a r a m h a b i l i d a d : H a b i l i d a d a d e s h a c e r . D e b e ser un o b j e t o de una c l a s e que h e r e d e de

H a b i l i d a d .

: r e t u r n : No t i e n e v a l o r de r e t o r n o . """

(6)

3.2.

Habilidades

Se deber´a implementar al menos 3 de las habilidades de la siguiente lista:

A1 Saca del mazo todas las cartas del mismo color que la carta del tope, y las env´ıa a la zona de descarte.

A2 Ordena las primeras 5 cartas del mazo propio o enemigo.

A3 Env´ıa todas las cartas de la zona de clock, stock y personaje al mazo. El mazo luego se mezcla.

A4 Env´ıa todas las cartas de la zona de personajes a la pila de descarte.

A5 Aumenta en X el poder de todos los personajes con un subtipo espec´ıfi-co (Ej. +1100 a todos los magos).

A6 Lanza un dado; destruye un personaje en la zona frontal seg´un el n´ ume-ro que salga. 1, 2, 3 corresponden al campo pume-ropio; 4, 5, 6 al enemigo.

A7 Lanza una moneda; mientras que sea cara, saca una carta del mazo del enemigo y la env´ıa a su zona de descarte. Se detiene cuando sale cruz o el mazo enemigo est´a vac´ıo.

A8 Mientras pueda, remueve 2 cartas del ´area de coste. Si lo hace, remueve una carta del area de clock. Se termina al no poder sacar 2 cartas del ´

area de coste o no queden m´as cartas en la zona de clock.

A9 Reduce en uno el nivel, pero elimina todas las cartas de personajes.

AA Selecciona una carta de personaje en el campo propio o enemigo y la remueve.

AB Selecciona una carta en el campo y reduce su poder a 0.

AC Lanza una moneda; si es cara remueve del juego una carta del opo-nente, si es cruz una propia. (Las cartas removidas del juego se van permanentemente del tablero y la mano).

(7)

3.3.

Template

f r o m h a b i l i d a d e s . h a b i l i d a d i m p o r t H a b i l i d a d

N O M B R E _ H A B I L I D A D = " n o m b r e "

c l a s s T e m p l a t e H a b i l i d a d ( H a b i l i d a d ) :

def _ _ i n i t _ _ ( s e l f ) : p a s s

def a p l i c a r _ e n _ c a r t a ( self , c a r t a ) : r a i s e N o t I m p l e m e n t e d E r r o r

def a p l i c a r _ e n _ t a b l e r o ( self , tablero , j u g a d o r ) : r a i s e N o t I m p l e m e n t e d E r r o r

def r e v e r t i r _ e n _ c a r t a ( self , c a r t a ) : r a i s e N o t I m p l e m e n t e d E r r o r

def r e v e r t i r _ e n _ t a b l e r o ( self , tablero , j u g a d o r ) : r a i s e N o t I m p l e m e n t e d E r r o r

def r e s e t e a r _ h a b i l i d a d ( s e l f ) : p a s s

def o b t e n e r _ n o m b r e ( s e l f ) : r e t u r n N O M B R E _ H A B I L I D A D

def o b t e n e r _ t e x t o ( s e l f ) : r e t u r n " "

def o b t e n e r _ h a b i l i d a d () :

r e t u r n T e m p l a t e H a b i l i d a d ()

Para agregar una nueva habilidad programada al juego, se debe agregar una l´ınea como la siguiente en el archivo habilidades/__init__.py

_ _ a l l _ _ += [ " n o m b r e _ d e l _ m o d u l o " ]

(8)
(9)

4.

FAQ

4.1.

¿Qu´

e carta se puede jugar?

Durante cada turno se pueden jugar cartas de la mano durante la primer o segunda fase principal.

* Para jugar un personaje o un evento se debe cumplir:

- El jugador tenga un nivel mayor o igual a la carta jugada.

- El jugador tenga suficientes cartas en la zona de recursos para pagar la activaci´on de la carta.

- Hay al menos una carta con el mismo color en la zona de clock o en la de nivel (Las cartas de nivel 0 no requieren esto).

* Adem´as, para las cartas de personaje: Se pueden jugar en la zona frontal o la retaguardia, si hay un casillero vac´ıo en esa zona.

* Para jugar una carta de climax se debe cumplir:

- Hay al menos una carta con el mismo color en la zona de clock o en la de nivel.

- El ´area de climax del jugador est´a vac´ıa.

4.2.

¿C´

omo determinar el da˜

no que una carta inflige a

un jugador?

Si una carta ataca a otra y gana, o si efect´ua un golpe directo, se considera que el ataque fue exitoso. Para determinar el da˜no que se inflige al oponente, se siguen los siguientes pasos:

- Se saca una carta del mazo y se la coloca en la zona de recursos.

- Se suman los puntos de efecto extra de esa carta a los puntos de alma de la atacante.

(10)

4.3.

¿C´

omo consigo cartas para pagar costos?

Normalmente, la ´unica forma de poner cartas en la zona de recursos es realizando ataques exitosos. Como se explica en la pregunta anterior, una carta es movida a esa zona al determinar el da˜no efectuado. Adem´as, algunos efectos pueden manipular la zona de recursos, agregando o quitando cartas.

4.4.

¿Qu´

e significa da˜

no cancelado?

Al infligir da˜no a un oponente, ´este debe sacar de su mazo un n´umero de cartas igual al da˜no infligido y colocarla en el ´area de clock. Si al robar cartas del mazo saca una carta de climax, el da˜no se cancela y todas las cartas sacadas son enviadas a la pila de descarte en lugar de al ´area de clock.

4.5.

¿Qu´

e es el ´

area de clock y la etapa de clocking?

El ´area de clock contiene de 0 a 7 cartas, y cada una de ellas representa un da˜no infligo al jugador. Al llegar a 7, se elige una carta aleatoria del ´area de clock y se la env´ıa al ´area de nivel (esto es conocido como aumento de nivel); el resto de las cartas se env´ıan a la pila de descarte. Durante la fase de clocking, uno puede elegir recibir un da˜no (colocando una carta de la mano en el ´area de clock) y tomar 2 cartas del mazo.

Como comentario adicional, es importante recordar que las cartas de nivel superior a 0, y las de climax, requieren al menos una carta del mismo color en el ´area de nivel o en la de clock para poder ser jugadas. La etapa de clock es ´util para colocar una carta de un color que toadv´ıa no est´e en ese ´area, habilit´andonos a jugar cartas de dicho color.

4.6.

¿C´

omo creo una nueva carta?

Para crear una carta, primero se debe colocar una imagen a usar por la carta en la carpeta card_images, que se encuentra dentro de la carpeta resources. La misma debe ser en formato PNG y debe contener el mismo nombre que la carta a la cual se le asignara, pero con los espacios reempla-zados por ”_”. Por ejemplo: si quiero una carta llamada ”Toban Lajp”, debo tener una imagen con el nombre Toban_Lajp.png.

(11)

Climax :

TIPO_CARTA | NOMBRE_CARTA | COLOR | EFECTO_EXTRA | HABILIDAD | TEXTO_DECORATIVO

Evento :

TIPO_CARTA | NOMBRE_CARTA | COLOR | EFECTO_EXTRA | HABILIDAD | TEXTO_DECORATIVO | NIVEL | COSTE

Personaje :

TIPO_CARTA | NOMBRE_CARTA | COLOR | EFECTO_EXTRA | HABILIDAD | TEXTO_DECORATIVO | NIVEL | COSTE | PODER | PUNTOS_DE_ALMA | (subtipo1,subtipo2)

5.

Ejecucion del programa

Para ejecutar el programa, simplemente ingresepython ./weiss-schwarz.py en la consola. Requerimientos:

Pygame

(12)

6.

Criterios de aprobaci´

on

A continuaci´on describimos criterios y lineamientos que deben respetarse en el desarrollo del trabajo.

6.1.

Programa

El programa debe cumplir los siguientes requerimientos:

Debe estar adecuadamente estructurado y modularizado, utilizando funciones definidas en forma lo m´as gen´erica posible, sin caer en lo trivial.

El c´odigo debe ser claro y legible.

El c´odigo debe estar comentado y las funciones adecuadamente docu-mentadas.

Adem´as, claro, debe satisfacer la especificaci´on de la consigna.

7.

Entrega

Se debe entregar una versi´on digital de los archivos de c´odigo fuente, y una versi´on impresa que contenga ´unicamente los archivos de c´odigo fuente modificados y los nuevos.

La versi´on digital debe enviarse a la direcci´on electr´[email protected] con un mensaje que tenga como asuntoTP4 - Padron1 - Padron2. El plazo

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

De hecho, este sometimiento periódico al voto, esta decisión periódica de los electores sobre la gestión ha sido uno de los componentes teóricos más interesantes de la

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación