1. La classe TaulerSE¶
Com que un tauler no és més que un conjunt de caselles, algunes d’elles connectades amb d’altres a través de serps, n’hi haurà prou amb emmagatzemar el nombre de caselles i, per cada casella, amb quina altra casella està connectada només en el cas que sigui el cap d’una serp. La informació de les serps s’emmagatzemarà en un atribut privat de la classe, com s’explica més endavant. Deseu la classe al mòdul tauler (fitxer tauler.py).
- class tauler.TaulerSE(ncaselles)¶
Crea una instància de la classe que representa un tauler amb el nombre de caselles indicat. Inicialment, el tauler no contindrà més que les caselles buides, és a dir, no hi haurà cap serp.
Atributs públics:
Mètodes:
- nombre_serps()¶
Retorna el nombre total de serps que hi ha al tauler.
- afegir_serp(cap, cua)¶
Afegeix una serp al tauler amb el cap i la cua en les caselles indicades. Es compleix que \(1 \leq cua \lt cap \leq num\_caselles\).
Aquesta classe ha de suportar les operacions següents:
Operació
Resultat
t[i]Retorna un enter que serà:
0 si a la casella i no hi ha el cap d’una serp.
el número de la casella amb la cua de la serp si i és el cap d’una serp
Es compleix \(1 \leq i \le len(t)\).
A l’hora d’implementar la classe, tingueu en compte que caldrà un atribut privat per a desar la informació de les serps del tauler. Es recomana que sigui un diccionari les claus del qual siguin el número de les caselles on hi ha els caps de les serps i els valors, el número de les casella corresponent on es va a parar quan hi caus, és a dir, la cua de la serp. Per exemple, pel tauler dibuixat, aquest diccionari tindria el valor
{14:5, 30:17, 33:10}.
Disposeu de jocs de prova al fitxer tests-taulerSE.txt.