diff --git a/game2048/.pytest_cache/v/cache/nodeids b/game2048/.pytest_cache/v/cache/nodeids index 83a8465dad94b5f1d4477dfd7b64aa56f45988b7..3857363758de75487dab578acef5b68775832e05 100644 --- a/game2048/.pytest_cache/v/cache/nodeids +++ b/game2048/.pytest_cache/v/cache/nodeids @@ -7,9 +7,16 @@ "test_grid_2048.py::test_grid_add_new_tile", "test_grid_2048.py::test_init_game", "test_grid_2048.py::test_long_value_with_theme", + "test_grid_2048.py::test_del_zeros", "test_grid_2048.py::test_move_row_left", "test_grid_2048.py::test_move_row_right", "test_grid_2048.py::test_move_grid", + "test_grid_2048.py::test_transpose_grid", "test_grid_2048.py::test_is_grid_full", - "test_grid_2048.py::test_move_possible" + "test_grid_2048.py::test_move_possible", + "test_grid_2048.py::test_is_game_over", + "test_grid_2048.py::test_get_grid_tile_max", + "test_grid_2048.py::test_did_you_win", + "test_grid_2048.py::test_list_move_possible", + "test_textual_2048.py::test_read_player_command" ] \ No newline at end of file diff --git a/game2048/grid_2048.py b/game2048/grid_2048.py index 3a44c3803a55e12ca9523ec456cf07cc810a5353..05f38a52187b98b37fc565f6220e4c72311e8b25 100644 --- a/game2048/grid_2048.py +++ b/game2048/grid_2048.py @@ -90,7 +90,7 @@ def long_value_with_theme(grid,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 + #fonction permettant de supprimer les zeros d'une ligne, et donne la taille de la liste initiale qui sont inutiles lors du processus de fusion des cases n = len(row) new_row = [] for i in range(n): @@ -182,6 +182,7 @@ def is_game_over(grid): def get_grid_tile_max(grid): return max(get_all_tiles(grid)) + def did_you_win (grid): return (get_grid_tile_max(grid)>=2048) @@ -221,15 +222,10 @@ 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") if did_you_win(grid_game): print("CONGRATS ! YOU WON !!!") else : print ("YOU FAIL, TRY AGAIN") return() -random_play() +#TEST random_play() diff --git a/game2048/test_grid_2048.py b/game2048/test_grid_2048.py index 2371025242bff69f3c882176236190ea1c776691..efa6c9094883f12c8c9390331ac53cb13323f8c4 100644 --- a/game2048/test_grid_2048.py +++ b/game2048/test_grid_2048.py @@ -5,8 +5,8 @@ from pytest import * def test_create_grid(): assert create_grid(0) == [] - assert create_grid(1) == [[' ']] - assert create_grid(4) == [[' ',' ',' ', ' '],[' ',' ',' ', ' '],[' ',' ',' ', ' '],[' ',' ',' ', ' ']] + assert create_grid(1) == [[0]] + assert create_grid(4) == [[0,0,0, 0],[0,0,0, 0],[0,0,0, 0],[0,0,0, 0]] def test_get_value_new_tile(): assert get_value_new_tile() == 2 or 4 @@ -69,6 +69,11 @@ def test_long_value_with_theme(): # FONCTIONNALITE 4 +def test_del_zeros (): + assert del_zeros([5,0,4,6])==([5,4,6],4) + assert del_zeros([0,0])==([],2) + assert del_zeros([0,0,9,7,0,0,0,0])==([9,7],8) + 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] @@ -97,6 +102,12 @@ def test_move_grid(): assert move_grid([[2,0,0,2], [2, 4, 0, 0], [8, 4, 2, 0], [8, 2, 2, 0]],"up") == [[4,8,4,2], [16, 2, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] assert move_grid([[2,0,0,2], [2, 4, 0, 0], [8, 4, 2, 0], [8, 2, 2, 0]],"down") == [[0, 0, 0, 0], [0, 0, 0, 0],[4,8,0,0],[16, 2, 4, 2]] +def test_transpose_grid (): + assert transpose_grid([[1,3],[2,5]])==[[1,2],[3,5]] + assert transpose_grid([[1,2,3],[6,7,8],[0,0,0]])==[[1,6,0],[2,7,0],[3,8,0]] + +#FONCTIONNALITE 5 + def test_is_grid_full(): assert is_grid_full([[0, 16, 32, 0], [64, 0, 32, 2], [2, 2, 8, 4], [512, 8, 16, 0]]) == False assert is_grid_full([[4, 16, 32, 4], [64, 8, 32, 2], [2, 2, 8, 4], [512, 8, 16, 1024]]) == True @@ -104,3 +115,27 @@ def test_is_grid_full(): def test_move_possible(): assert move_possible([[2, 2, 2, 2], [4, 8, 8, 16], [0, 8, 0, 4], [4, 8, 16,32]]) == [True,True,True,True] assert move_possible([[2, 4, 8, 16], [16, 8, 4, 2], [2, 4, 8, 16], [16, 8, 4,2]]) == [False,False,False,False] + +def test_is_game_over (): + assert is_game_over([[2,4,2,8],[4,2,4,2],[16,32,16,32],[128,64,128,64]])==True + assert is_game_over([[2,4,2,8],[4,2,4,8],[16,32,16,32],[128,64,128,64]])==False + assert is_game_over([[2,4,2,8],[4,2,4,0],[16,32,16,32],[128,64,128,64]])==False + +def test_get_grid_tile_max(): + assert get_grid_tile_max([[1,2],[0,8]])==8 + assert get_grid_tile_max([[2,2,2,2],[2,2,2,2],[2,2,2,2],[2,2,2,2]])==2 + assert get_grid_tile_max([[2,2,4,2],[2,2,2,2],[2,2,2,2],[2,2,2,2]])==4 + +def test_did_you_win (): + assert did_you_win([[2,2048],[8,16]])==True + assert did_you_win([[2,2,2,0],[2,4096,2,2],[2,2,2,2],[2,2,2,2]])==True + assert did_you_win([[2,2,2,1024],[2,128,2,2],[2,2,2,2],[2,2,2,2]])==False + +#FONCTIONNALITE 6 + +def test_list_move_possible(): + assert list_move_possible([[2,2,2,2],[2,2,2,2],[2,2,2,2],[2,2,2,2]])==["left","right","up","down"] + assert list_move_possible([[2,4,2,8],[4,2,4,0],[16,32,16,32],[128,64,128,64]])==["right","up","down"] + assert list_move_possible([[2,4,2,4],[4,8,8,8],[16,32,16,32],[128,64,128,64]])==["left","right"] + assert list_move_possible([[2,4,2,8],[4,2,4,2],[16,32,16,32],[128,64,128,64]])==[] + assert list_move_possible([[2,4,2,8],[4,2,4,2],[16,32,16,32],[0,0,0,0]])==["down"]