Projet 1ère NSI : Importation dans le jeu de la vie d'un motif au format rle

Première Partie: (Algorithmique en Python)

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)

Solution

Deuxième Partie: (Technologies du web)

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.