Réalisation d’un module python par groupe de 3 à 5

Un embryon de jeu 2048 est implémenté dans l’exemple suivant cp2048.py, un exemple complet de projet est illustré par le module pystrat2048 (documentation). Un exemple d’utilisation est présent dans un second fichier test_cp2048.py. La strétagie à implémenter doit pouvoir être évaluée avec la fonction: evaluate_strategy. Voici un exemple :

<<<

import random
from ensae_teaching_cs.td_1a.cp2048 import evaluate_strategy


def random_strategy(game, moves):
    return random.randint(0, 3)


scores = list(evaluate_strategy(random_strategy))
print(scores)

>>>

    [64, 64, 32, 32, 32, 64, 64, 64, 32, 32]

La stratégie devra venir du module que vous devrez implémenter de la façon suivant :

import random
from ensae_teaching_cs.td_1a.cp2048 import evaluate_strategy
from un_module import strategy_2048

scores = list(evaluate_strategy(strategy_2048))
print(scores)

La meilleure stratégie sera évaluée sur 1000 parties. Pour finir, les deux notebooks suivants vous seront utiles : Tests Unitaires, Continuous Integration.

Rendu

Le projet doit être rendu sous la forme d’un fichier zip avec les sources accompagnées d’un exemple sous la forme d’un fichier python ou notebook. La documentation n’est pas indispensable. Le projet minimal doit ressembler à ce qui suit :

zip
 +-- votre_module
 |      +-- __init__.py
 |      +-- fichier.py
 +-- tests
 |      +-- test_strategy.py
 +-- setup.py
 |
 +-- example.py ou example.ipynb