Le codage par plages (appelé en anglais Run-Length Encoding/RLE) est un algorithme de compression de données sans perte qui repose sur l'idée de comprimer des plages de valeurs identiques en signalant le nombre de fois qu'une valeur donnée devrait être répétée.
On observera soigneusement les 4 exemples pour comprendre son fonctionnement et l'implémenter en python.
Indications : observer le rôle des caractères spéciaux ! et $.def genere_matrice(rle,x,y):
"""
Transforme le code rle en une matrice de dimension x*y
param : rle : str
param : x : int
param : y : int
return : list
>>> genere_matrice("b3o$3o!",4,2)
[[0, 1, 1, 1], [1, 1, 1, 0]]
>>> genere_matrice("bo$2bo$3o!",3,3)
[[0, 1, 0], [0, 0, 1], [1, 1, 1]]
>>> genere_matrice("2o$2o$2b2o$2b2o!",4,4)
[[1, 1, 0, 0], [1, 1, 0, 0], [0, 0, 1, 1], [0, 0, 1, 1]]
>>> genere_matrice("12ob$2b11o!",15,2)
[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0]]
"""
pass
if __name__ == '__main__':
import doctest
doctest.testmod(verbose=True)
Reconstituer (à partir de ses différents fichiers, au nombre de 4 (1 html, 2 js, 1 css)) sur votre ordinateur le jeu de la vie à partir de son code source. Comprendre son fonctionnement sans toutefois rentrer dans les détails techniques ; comprendre en particulier le codage en JavaScript des règles du jeu.
Chercher sur ce site de référence un motif (pattern) de votre choix, exportez-le au format RLE, utiliser le code python déterminé précédemment pour obtenir la matrice correspondante ; intégrer ce motif à la liste des motifs disponibles dans le jeu et vérifier le fonctionnement.