diff --git a/game2048/grid_2048.py b/game2048/grid_2048.py index 495a125f61f918e37c35e2b8e3bda1b70b4d8aea..c93da5bd4aac8c2a51cd02d6717048870966faa3 100644 --- a/game2048/grid_2048.py +++ b/game2048/grid_2048.py @@ -87,8 +87,33 @@ def grid_to_string_with_size_and_theme(grid, theme,n): def long_value_with_theme(grid,theme): return max(len(theme[v]) for v in get_all_tiles(grid)) - -#FONCTIONNALITE 4 +# FONCTIONNALITE 3 + +def read_player_command(): + deplacements = {'g':"left",'d':"right",'h':"up",'b':"down"} + move = input("Entrez votre commande (g (gauche), d (droite), h (haut), b(bas)): ") + while move not in ['g','d','h','b']: + move = input("Commande invalide. \n Entrez votre commande (g (gauche), d (droite), h (haut), b(bas)): ") + return deplacements[move] + +def read_size_grid(): + size = input("Choisissez la taille de la grille : ") + while True: + try: + size = int(size) + except: + size = input("Taille invalide, choisissez un nombre entier. \n Choisissez la taille de la grille : ") + else: + break + return size + +def read_theme_grid(): + theme = input("Choisissez le numéro du thème : ") + while theme not in ['0','1','2']: + theme = input("Ce thème n'existe pas ! \n Choisissez le numéro du thème : ") + return THEMES[theme] + +# FONCTIONNALITE 4 def del_zeros(row): n = len(row) diff --git a/game2048/test_grid_2048.py b/game2048/test_grid_2048.py index 3acae3a0870aef18bc3e636a1ce84d8a527cee61..cf74e5a11df7fc1d11790350d27eb0f005a79e5e 100644 --- a/game2048/test_grid_2048.py +++ b/game2048/test_grid_2048.py @@ -1,6 +1,8 @@ from game2048.grid_2048 import * from pytest import * +# FONCTIONNALITE 1 + def test_create_grid(): assert create_grid(0) == [] assert create_grid(1) == [[' ']] @@ -40,6 +42,8 @@ def test_init_game(): assert 2 or 4 in tiles assert len(get_empty_tiles_positions(grid)) == 14 +#FONCTIONNALITE 2 + #def test_grid_to_string(): # a =""" === === === === # | | | | | @@ -62,6 +66,13 @@ def test_long_value_with_theme(): assert long_value_with_theme(grid,THEMES["1"]) == 2 assert long_value_with_theme(grid,THEMES["2"]) == 1 +#FONCTIONNALITE 3 + +def test_read_player_command(monkeypatch): + monkeypatch.setattr('builtins.input', lambda x: "d") + +# FONCTIONNALITE 4 + def test_move_row_left(): assert move_row_left([0, 0, 0, 2]) == [2, 0, 0, 0] assert move_row_left([0, 2, 0, 4]) == [2, 4, 0, 0]