You are on page 1of 10

Examen Final UF4 M3

Joc de Cartes - Guerra


Valors de les cartes

A - 14
K - 13
Q - 12
J - 11
2,3,4,5,6,7,8,9,10 el valor de la carta

Pals

4 pals (cors, diamants, piques i trèvols)

Jugadors

2 jugadors - ordinador i pc, cadascun amb 26 cartes (la meitat de la baralla), les
cartes han d’estar barrejades.
Examen Final UF4 M3

Regles del Joc


cada jugador agafa una carta del final de la seva pila de cartes

el jugador amb el valor de la carta més alt s’emporta la mà, és a dir es queda les
dues cartes i les posa al principi de la seva pila de cartes

si el valor és el mateix (per exemple 3 i 3) comença la guerra


Examen Final UF4 M3

Guerra:

cadascú agafa 3 cartes de la seva pila de cartes i les posa bocaterrosa, després
cada jugador agafa 1 carta més aquesta es mostra, el que tingui la carta amb el
valor més alt s’emporta totes les cartes (8) i les posa al final de la seva baralla, si
torna a haver-hi empat es fa una altra guerra, acumulant les cartes.

Si un jugador guanya totes les cartes, guanya la partida


Examen Final UF4 M3

Classes i mètodes:

La classe Pal (1 punt)

Les instàncies d’aquesta classe tindran dos atributs d’instància: descripcio i


simbol.
La descripció pot ser: "trèvols", "diamants", "cors" o "piques".
El símbol pot ser: ♣, ♦, ♥ o ♠., aquest atribut es calcula automàticament a partir de la
descripció i l’atribut de classe SIMBOLS
Els atributs d’instància seran atributs no públics de només lectura (només haurien
de tenir getters).

La classe tindrà un atribut de classe tipus diccionari que mapeja la descripció amb el
símbol

SIMBOLS = {"trevols": "♣", "diamants": "♦", "cors": "♥",


"piques": "♠"}

La classe Carta (2 punts)

Les instàncies d’aquesta classe tindran dos atributs d’instància que es passen al
constructor: pal i valor.

El pal ha de ser una instància de la classe de Pal.

El valor ha de ser el valor de la carta.

Els atributs d’instància seran atributs de només lectura (només haurien de tenir
getters).

La classe tindrà un atribut de classe que mapeja els valors de les cartes especials a
les seves descripcions escrites (11 a "J", 12 a "Q", 13 a "K" i 14 a "A").

CARTES_ESPECIALS = {11: "J", 12: "Q", 13: "K", 14: "A"}

La classe tindrà dos mètodes: un per mostrar la carta, recarregant “str” i


es_especial.
Examen Final UF4 M3

El mètode es_especial tornarà cert si el valor de la carta és superior o igual a 11 i


falsa en cas contrari.

El mètode per mostrar la carta mostrarà el valor, el pal i el símbol de la carta. Si la


carta és especial, aquesta hauria de ser la descripció escrita (per exemple, "J") en
lloc del valor.

Exemples:

2 - [2 - ♥]

14 - [A - ♠]

La classe PilaDeCartes (3 punts)

Les instàncies d’aquesta classe tindran un atribut d’instància: cartes. Aquest atribut
no serà públic i contindrà una llista d’instàncies de la classe de Carta (és a dir les
cartes que pertanyen a la baralla).

Quan es crea una instància de la classe PilaDeCartes per paràmetre es podrà triar
si la llista de cartes està inicialment buida o no. Sinó està buida s’ha de cridar al
mètode construir, per tal que llista de cartes tingui totes les cartes de la baralla.

La classe tindrà quatre mètodes: construir, mostrar, barrejar, agafar i afegir.

Recarrega el mètode len per obtenir la mida de la pila de cartes ( o fes un mètode
longitud)

El mètode de construir ha de crear la baralla (atribut cartes que és la llista de


cartes) creant 52 instàncies de la carta amb números de 2 a 14 (inclòs) per a
cadascun dels quatre pals possibles.
Examen Final UF4 M3

El mètode mostrar itera en cartes, la llista d’instàncies de Carta, i mostrarà la


descripció de cada carta.

2 - [2 - ♣], 2 - [2 - ♦], 2 - [2 - ♥], 2 - [2 - ♠], 3 - [3 - ♣], 3 - [3 - ♦],


3 - [3 - ♥], 3 - [3 - ♠], 4 - [4 - ♣], 4 - [4 - ♦], 4 - [4 - ♥], 4 - [4 - ♠],
5 - [5 - ♣], 5 - [5 - ♦], 5 - [5 - ♥], 5 - [5 - ♠], 6 - [6 - ♣], 6 - [6 - ♦],
6 - [6 - ♥], 6 - [6 - ♠], 7 - [7 - ♣], 7 - [7 - ♦], 7 - [7 - ♥], 7 - [7 - ♠],
8 - [8 - ♣], 8 - [8 - ♦], 8 - [8 - ♥], 8 - [8 - ♠], 9 - [9 - ♣], 9 - [9 - ♦],
9 - [9 - ♥], 9 - [9 - ♠], 10 - [10 - ♣], 10 - [10 - ♦], 10 - [10 - ♥],
10 - [10 - ♠], 11 - [J - ♣], 11 - [J - ♦], 11 - [J - ♥], 11 - [J - ♠],
12 - [Q - ♣], 12 - [Q - ♦], 12 - [Q - ♥], 12 - [Q - ♠], 13 - [K - ♣],
13 - [K - ♦], 13 - [K - ♥], 13 - [K - ♠], 14 - [A - ♣], 14 - [A - ♦],
14 - [A - ♥], 14 - [A - ♠],

El mètode barrejar ha de barrejar l’atribut cartes, és a dir la llista de cartes, cridant a


la funció de shuffle del mòdul random.
Examen Final UF4 M3

El mètode agafar retorna i elimina la darrera carta de cartes, la llista de cartes,


podeu utilitzar pop
Examen Final UF4 M3

El mètode afegir insereix una carta al principi de la llista de cartes, podeu utilitzar
insert.

La classe Jugador (2 punts)

Les instàncies d’aquesta classe tindran tres atributs d’instància: nom,


pila_de_cartes i es_pc.

El nom serà un string.

La pila_de_cartes serà una instància de la classe de PilaDeCartes, inicialment


buida,

es_pc serà cert o fals.

El nom serà un atribut públic i la resta no públics de només lectura.

La classe tindrà quatre mètodes: esta_pila_buida, agafar_carta, afegir_carta i


afegir_cartes.
Examen Final UF4 M3

El mètode esta_pila_buida retorna cert si la mida de la pila_de_cartes del jugador


és 0. Altrament, tornarà fals.

El mètode agafar_carta si la pila_de_cartes no està buida cridarà al mètode


agafar_carta de la pila_de_cartes i retorna la carta.

El mètode afegir_carta afegirà una carta a la part inferior de la pila_de_cartes del


jugador (cridan al mètode de la classe PilaDeCartes).

El mètode afegir_cartes afegeix una llista de cartes a l’atribut pila_de_cartes

Implementar Joc (2 punts)

Implementa el joc seguint les normes descrites al principi i utilitzant les classes i
mètodes implementats.

- crea una baralla (pila_de_cartes) amb totes les cartes


- mostra la baralla
- barreja la baralla
- mostra la baralla barrejada
- fes 2 jugadors (un pc i un jugador)
- reparteix la meitat de les cartes de la baralla a cada jugador
- mostra la pila de cartes de cada jugador

- mentre el joc no s’ha acabat


- cada jugador agafa una carta del final seu pilot
- compara el valor de les cartes
- el jugador amb el valor més alt guanya la ronda i es queda les dues
cartes i les posa al principi de la seva pila_de_cartes
- si hi ha empat es fa guerra
- cada jugador agafa 3 cartes
- cadascun agafa una altra carta per fer la guerra
- el jugador que guanya es queda totes les cartes (8)
- sino hi ha guanyador es repeteix la guerra, i s’acumulen les
cartes

El joc s’acaba quan un jugador es queda sense cartes.


Examen Final UF4 M3

Tingues en compte que si un jugador no li queden almenys 4 cartes no pot fer


guerra, i el joc s'acaba.

You might also like