diff --git a/game2048/grid_2048.py b/game2048/grid_2048.py index 2f0cc12506233400395a80e49c588e06c2a3baf5..d0b901648506e9eb3f8342bfca379586702177da 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): #fonction permettant de supprimer les zeros d'une ligne, qui sont inutiles lors du processus de fusion des cases @@ -189,8 +214,12 @@ def did_you_win (grid): #Fonctinnalité 6 +<<<<<<< HEAD def list_moove_possible (grid): #renvoie la liste des deplacements possibles +======= +def list_move_possible (grid): +>>>>>>> c7f7a81e42fe1f954e38b492c9d251128aa9cf68 list_bool=move_possible(grid) list_final=[] if list_bool[0]: @@ -213,6 +242,7 @@ def random_play(): #phase de jeu while not is_game_over(grid_game): +<<<<<<< HEAD #pour chaque tour d=rd.choice(list_moove_possible(grid_game)) #on choisi un mouvement @@ -222,6 +252,13 @@ def random_play(): print("\n***********************************\n") #permet aux différentes grilles d'être plus lisible #vérification si le jeu est gagnant ou perdant +======= + d=rd.choice(list_move_possible(grid_game)) + grid_game=move_grid(grid_game,d) + grid_game=grid_add_new_tile(grid_game) + print(grid_to_string_with_size_and_theme(grid_game,THEMES["0"],4)) + print("\n***********************************\n") +>>>>>>> c7f7a81e42fe1f954e38b492c9d251128aa9cf68 if did_you_win(grid_game): print("CONGRATS ! YOU WON !!!") else : 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]