diff --git a/game2048/.pytest_cache/v/cache/lastfailed b/game2048/.pytest_cache/v/cache/lastfailed new file mode 100644 index 0000000000000000000000000000000000000000..fb70bde4277eaa17628608635b927c8cb60e9341 --- /dev/null +++ b/game2048/.pytest_cache/v/cache/lastfailed @@ -0,0 +1,3 @@ +{ + "test_grid_2048.py::test_grid_to_string": true +} \ No newline at end of file diff --git a/game2048/.pytest_cache/v/cache/nodeids b/game2048/.pytest_cache/v/cache/nodeids new file mode 100644 index 0000000000000000000000000000000000000000..6bde46819f23c298ce23edcb95769827fb6178bf --- /dev/null +++ b/game2048/.pytest_cache/v/cache/nodeids @@ -0,0 +1,3 @@ +[ + "test_grid_2048.py::test_long_value_with_theme" +] \ No newline at end of file diff --git a/__init__.py b/game2048/__init__.py similarity index 100% rename from __init__.py rename to game2048/__init__.py diff --git a/tb_grid_2048.py b/game2048/tb_grid_2048.py similarity index 100% rename from tb_grid_2048.py rename to game2048/tb_grid_2048.py diff --git a/tb_test_grid_2048.py b/game2048/tb_test_grid_2048.py similarity index 100% rename from tb_test_grid_2048.py rename to game2048/tb_test_grid_2048.py diff --git a/gg_grid_2048.py b/gg_grid_2048.py deleted file mode 100644 index 18cbafc78c7374a0b8ac3be46177fadc00b4652b..0000000000000000000000000000000000000000 --- a/gg_grid_2048.py +++ /dev/null @@ -1,123 +0,0 @@ -import random as rd - -#FONCTIONNALITE 1 - -def create_grid(taille): - #la taille doit etre supérieure à 1 - grille = [] - ligne =[] - for case in range(taille): - ligne.append(' ') #on crée une ligne contenant le bon nombre de cases - for nb_ligne in range (taille): - grille.append(ligne.copy()) #permet de découpler les lignes - return grille - -def add_new_tile(grid): - #la position indiqué doit etre cohérente avec les dimensions de la grille considérée - value=choose_value_new_tile() - (x,y)=get_new_position(grid) - grid[x][y]=value - #attention, la fonction modifie la liste passée en argument ! - return(grid) - - -def choose_value_new_tile(): - #choisi la valeur de la nouvelle case avec la probabilté indiquée dans l'énoncé - value=rd.choice([2,2,2,2,2,2,2,2,2,4]) - return(value) - -def get_all_tiles (grid): - nb_ligne=len(grid) - nb_colonne=len(grid[0]) #on suppose que la grille a au moins une ligne - tiles=[] - for ligne in range (nb_ligne): - for colonne in range (nb_colonne): - tile = grid[ligne][colonne] - if tile == ' ': - tiles.append(0) - else : - tiles.append(tile) - return(tiles) - -def get_empty_tile_position(grid): - position_empty=[] - for ligne in range (len(grid)): - for colonne in range (len(grid[0])): - if grid[ligne][colonne]==0 or grid[ligne][colonne]==' ' : - position_empty.append((ligne,colonne)) - return(position_empty) - -def get_new_position (grid): - #choisi une postion au hasard parmis les position libre - position_empty=get_empty_tile_position(grid) - (x,y)=rd.choice(position_empty) - return((x,y)) - -def grid_get_value(grid,x,y): - if grid[x][y] == ' ': - return (0) - else : - return(grid[x][y]) - -def init_game(taille): - new_grid=create_grid(taille) - (x1,y1)=get_new_position(new_grid) #choisi la première tuile qui va être un 2 ou un 4 - new_grid[x1][y1]=choose_value_new_tile() - (x2,y2)=get_new_position(new_grid) #choisi la deuxièeme tuile - new_grid[x2][y2]=choose_value_new_tile() - return(new_grid) - - -#FONCTIONNALITE 2 - -def grid_to_string(grid): - #je chosis de ne pas prendre l'argument "n" car cette information est déjà contenue dans la grid et elle me semble redondante - #on suppose que la grille est carrée - - affichage=" "+"=== "*len(grid)+"\n" - #crée la délimation du dessus - - for ligne in range (len(grid)): - - for colonne in range (len(grid[0])): - #on suppose que la grille a au moins une ligne et qu'elles ont toutes la même taille - affichage=affichage+"| "+str(grid[ligne][colonne])+" " - #crée l'affichage de l'interieure des tuiles et de leur séparation - - affichage=affichage+"|\n" #fini la ligne - affichage=affichage+" "+"=== "*len(grid)+"\n"# - - return (affichage) - - - -def long_value (grid): - all_tiles=get_all_tiles(grid) - str_all_tiles=[] #création d'une liste de chaine de caractére prenant la valeur des tuiles - long_str_tiles=[] #liste contenant les longueurs des tuiles - for tile in range (len (all_tiles)): - str_all_tiles.append(str(all_tiles[tile])) - for string_tile in range (len(str_all_tiles)): - long_str_tiles.append(len(str_all_tiles[string_tile])) - return (max(long_str_tiles)) - -def grid_to_string_with_size(grid): - longest=long_value(grid) - - nb_espace=longest+2 #donne le nombre d'espace necessaire dansla grille - espaces = "="*nb_espace - espaces=espaces+" " - - affichage=" "+espaces*len(grid)+"\n" - #crée la délimation du dessus - - for ligne in range (len(grid)): - - for colonne in range (len(grid[0])): - #on suppose que la grille a au moins une ligne et qu'elles ont toutes la même taille - nb_espace_manquant=longest-len(str(grid[ligne][colonne]))-1 - affichage=affichage+"| "+str(grid[ligne][colonne])+" "*nb_espace_manquant - - affichage=affichage+"|\n" #fini la ligne - affichage=" "+espaces*len(grid)+"\n" - return(affichage) diff --git a/gg_test_grid_2048.py b/gg_test_grid_2048.py deleted file mode 100644 index de5f54a51f077abe71c0b6364adfaa0f3a969144..0000000000000000000000000000000000000000 --- a/gg_test_grid_2048.py +++ /dev/null @@ -1,70 +0,0 @@ -from game2048.gg_grid_2048 import * -from pytest import * - -def test_create_grid(): - assert create_grid(4)==[[' ',' ',' ',' '],[' ',' ',' ',' '],[' ',' ',' ',' '],[' ',' ',' ',' ']] - assert create_grid(5)==[[' ',' ',' ',' ',' '],[' ',' ',' ',' ',' '],[' ',' ',' ',' ',' '],[' ',' ',' ',' ',' '],[' ',' ',' ',' ',' ']] - assert create_grid(1)==[[' ']] - assert create_grid(2)==[[' ',' '],[' ',' ']] - -"""def test_add_new_tile_at_position(): - game_grid=create_grid(4) - assert add_new_tile(game_grid, 1, 1, 2) == [[' ', ' ', ' ', ' '], [' ', 2 , ' ', ' '], [' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ']] - game_grid=create_grid(4) - assert add_new_tile(game_grid, 2, 1, 4) == [[' ', ' ', ' ', ' '], [' ', ' ', ' ', ' '], [' ', 4, ' ', ' '], [' ', ' ', ' ', ' ']] - game_grid=create_grid(4) - assert add_new_tile(game_grid, 3, 0, 2) == [[' ', ' ', ' ', ' '], [' ', ' ', ' ', ' '], [' ', ' ', ' ', ' '], [2, ' ', ' ', ' ']] - game_grid=create_grid(4) - value=choose_value_new_tile() - game_grid=add_new_tile(game_grid, 1, 1, value) - tiles=get_all_tiles(game_grid) - assert 2 or 4 in tiles """ - - -def test_choose_value_new_tile(): - assert choose_value_new_tile()== 2 or 4 - -def test_get_all_tiles(): - assert get_all_tiles([[' ',4,4,6],[' ',' ',' ',8],[32,32,' ',64],[1024,' ',' ',512]])==[0,4,4,6,0,0,0,8,32,32,0,64,1024,0,0,512] - assert get_all_tiles([[16,4,8,2], [2,4,2,128], [4,512,32,64],[1024,2048,512,2]]) == [16, 4, 8, 2, 2, 4, 2, 128, 4, 512, 32, 64, 1024, 2048, 512,2] - -def test_get_empty_tile_position(): - assert get_empty_tile_position([[0,0,16,32],[64,8,0,6],[64,0,4,8],[512,4,4,6]])==[(0,0),(0,1),(1,2),(2,1)] - assert get_empty_tile_position([[16,4,8,2], [2,4,2,128], [4,512,32,64],[1024,2048,512,2]])==[] - assert get_empty_tile_position([[' ', 16, 32, 0], [64, 0, 32, 2], [2, 2, 8,4], [512, 8, 16, 0]])==[(0,0),(0,3),(1,1),(3,3)] - assert get_empty_tile_position(create_grid(2))==[(0,0),(0,1),(1,0),(1,1)] - - -def test_get_new_position(): - grid = [[0, 16, 32, 0], [64, 0, 32, 2], [2, 2, 8, 4], [512, 8, 16, 0]] - x,y=get_new_position(grid) - assert(grid_get_value(grid,x,y)) == 0 - grid = [[' ',4,8,2], [' ',' ',' ',' '], [' ',512,32,64], [1024,2048,512, ' ']] - x,y=get_new_position(grid) - assert(grid_get_value(grid,x,y)) == 0 - -def test_add_new_tile(): - game_grid=create_grid(4) - game_grid=add_new_tile(game_grid) - tiles = get_all_tiles(game_grid) - assert 2 or 4 in tiles - -def test_init_game(): - grid = init_game(4) - tiles = get_all_tiles(grid) - assert 2 or 4 in tiles - assert len(get_empty_tile_position(grid)) == 14 - -def test_grid_to_string(): - a =""" - === === === === -| | | | | - === === === === -| | | | | - === === === === -| | | | | - === === === === -| 2 | | | 2 | - === === === === -""" - grid_to_string([[' ', ' ', ' ', ' '], [' ', ' ', ' ', ' '], [' ', ' ', ' ', ''], [2, ' ', ' ', 2]])==a diff --git a/textual2048/__init__.py b/textual2048/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391