Solució de l’examen parcial torn 2 d’Ampliació d’Informàtica

Organització:

Secció ETSEIB, Departament de Ciències de la Computació, UPC

Data:

2 de novembre de 2023

Copyright:

Reconeixement-CompartirIgual 3.0 No adaptada de Creative Commons

Durada:

1 hora i 10 minuts

Jocs de proves

Aquests jocs de proves necessiten el fitxer tauler_corr.py.

Els exemples que compten per la nota són només els que van seguits de # doctesttag: +TAG=

Test exercici 1 : Classe TaulerW

# importem la solució de l’estudiant amb import

>>> import tauler
>>> t1 = tauler.TaulerW(7, 4)
>>> t1.num_files, t1.num_columnes # doctesttag: +TAG=1_taulerW
(7, 4)
>>> len(t1) # doctesttag: +TAG=1_taulerW
0
>>> t1.afegir_paraula('ADEU')
>>> t1.afegir_paraula('COSA')
>>> len(t1) # doctesttag: +TAG=1_taulerW
2
>>> for i in range(2):  # doctesttag: +TAG=1_taulerW
...    print(t1[i], end='/')
ADEU/COSA/
>>> 'D' in t1, 'X' in t1  # doctesttag: +TAG=1_taulerW
(True, False)
>>> t1.afegir_paraula('MATO')
>>> t1.afegir_paraula('BOLA')
>>> t1.afegir_paraula('HOLA')
>>> for i in range(len(t1)):  # doctesttag: +TAG=1_taulerW
...    print(t1[i], end='/')
ADEU/COSA/MATO/BOLA/HOLA/
>>> for c in 'ABCDEFGHIJKLMNOPQRSTUVXYZ': # doctesttag: +TAG=1_taulerW
...    print(c in t1, end='/')
True/True/True/True/True/False/False/True/False/False/False/True/True/False/True/False/False/False/True/True/True/False/False/False/False/
>>> t2 = tauler.TaulerW(4, 10)
>>> t2.afegir_paraula('SUPERSONIC')
>>> t2.afegir_paraula('CABALISTIC')
>>> t2.afegir_paraula('PASTAFIORI')
>>> t2.afegir_paraula('CARAMELLES')
>>> for i in range(len(t2)):  # doctesttag: +TAG=1_taulerW
...    print(t2[i], end='/')
SUPERSONIC/CABALISTIC/PASTAFIORI/CARAMELLES/
>>> for c in 'ABCDEFGHIJKLMNOPQRSTUVXYZ': # doctesttag: +TAG=1_taulerW
...    print(c in t2, end='/')
True/True/True/False/True/True/False/False/True/False/False/True/True/True/True/True/False/True/True/True/True/False/False/False/False/

Test exercici 2 : iter_lletres

# importem una solució correcta amb from…import

>>> from tauler_corr import TaulerW
>>> from illetres import iter_lletres
>>> t3 = TaulerW(7, 6)
>>> t3.afegir_paraula('SALETA')
>>> it = iter_lletres(t3)
>>> for tup in it: # doctesttag: +TAG=2_illetres
...     print(tup, end='-')
('A', True)-('B', False)-('C', False)-('D', False)-('E', True)-('F', False)-('G', False)-('H', False)-('I', False)-('J', False)-('K', False)-('L', True)-('M', False)-('N', False)-('O', False)-('P', False)-('Q', False)-('R', False)-('S', True)-('T', True)-('U', False)-('V', False)-('W', False)-('X', False)-('Y', False)-('Z', False)-
>>> t3.afegir_paraula('ROGERS')
>>> t3.afegir_paraula('INGRES')
>>> for tup in iter_lletres(t3):  # doctesttag: +TAG=2_illetres
...     print(tup, end='-')
('A', True)-('B', False)-('C', False)-('D', False)-('E', True)-('F', False)-('G', True)-('H', False)-('I', True)-('J', False)-('K', False)-('L', True)-('M', False)-('N', True)-('O', True)-('P', False)-('Q', False)-('R', True)-('S', True)-('T', True)-('U', False)-('V', False)-('W', False)-('X', False)-('Y', False)-('Z', False)-
>>> t3.afegir_paraula('BUPHIK')
>>> for tup in iter_lletres(t3):  # doctesttag: +TAG=2_illetres
...     print(tup, end='-')
('A', True)-('B', True)-('C', False)-('D', False)-('E', True)-('F', False)-('G', True)-('H', True)-('I', True)-('J', False)-('K', True)-('L', True)-('M', False)-('N', True)-('O', True)-('P', True)-('Q', False)-('R', True)-('S', True)-('T', True)-('U', True)-('V', False)-('W', False)-('X', False)-('Y', False)-('Z', False)-
>>> t3.afegir_paraula('MURPHY')
>>> t3.afegir_paraula('ZAXXON')
>>> t3.afegir_paraula('DOLMEN')
>>> for tup in iter_lletres(t3):  # doctesttag: +TAG=2_illetres
...     print(tup, end='-')
('A', True)-('B', True)-('C', False)-('D', True)-('E', True)-('F', False)-('G', True)-('H', True)-('I', True)-('J', False)-('K', True)-('L', True)-('M', True)-('N', True)-('O', True)-('P', True)-('Q', False)-('R', True)-('S', True)-('T', True)-('U', True)-('V', False)-('W', False)-('X', True)-('Y', True)-('Z', True)-

Test exercici 3 : PartidaSE

>>> from partida import PartidaW
>>> t4 = PartidaW(5, 'PATATA')
>>> t4.num_files, t4.num_columnes    # doctesttag: +TAG=3_partidaW
(5, 6)
>>> len(t4), t4.secreta   # doctesttag: +TAG=3_partidaW
(0, 'PATATA')
>>> t4.afegir_paraula('FELINA')
>>> t4.estat()  # doctesttag: +TAG=3_partidaW
'jugant'
>>> [t4[i] for i in range(5)]    # doctesttag: +TAG=3_partidaW
['FELINA', '', '', '', '']
>>> for i, p in enumerate(['NOSTRA', 'PETITA', 'PATATA']):   # doctesttag: +TAG=3_partidaW
...    t4.afegir_paraula(p)
...    print(t4[i], t4.estat())
FELINA jugant
NOSTRA jugant
PETITA guanya
>>> for i in range(4):   # doctesttag: +TAG=3_partidaW
...    print(t4.color_verd(i))
*****A
*****A
P*T*TA
PATATA
>>> t5 = PartidaW(3, 'MARCA')
>>> for p in ['PORTA', 'MORTA', 'MARXA']:   # doctesttag: +TAG=3_partidaW
...    t5.afegir_paraula(p)
...    print(t5.estat())
jugant
jugant
perd
>>> for i in range(len(t5)):   # doctesttag: +TAG=3_partidaW
...    print(t5.color_verd(i))
**R*A
M*R*A
MAR*A