From 15883ac11a1d5e067e173c9ddba3c0e80ca1d0df Mon Sep 17 00:00:00 2001 From: unknown <thomas.bianco@student-cs.fr> Date: Wed, 14 Nov 2018 14:32:16 +0100 Subject: [PATCH] ajout run_2048 --- .idea/inspectionProfiles/Project_Default.xml | 2 + game2048/__pycache__/grid_2048.cpython-36.pyc | Bin 0 -> 5275 bytes .../__pycache__/textual_2048.cpython-36.pyc | Bin 0 -> 1533 bytes game2048/grid_2048.py | 31 +--------- game2048/run_2048.py | 55 ++++++++++++++++++ game2048/textual_2048.py | 2 + 6 files changed, 60 insertions(+), 30 deletions(-) create mode 100644 game2048/__pycache__/grid_2048.cpython-36.pyc create mode 100644 game2048/__pycache__/textual_2048.cpython-36.pyc create mode 100644 game2048/run_2048.py diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 579ee6c..1cc4cad 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -8,6 +8,8 @@ <option value="E501" /> <option value="W29" /> <option value="E501" /> + <option value="W29" /> + <option value="E501" /> </list> </option> </inspection_tool> diff --git a/game2048/__pycache__/grid_2048.cpython-36.pyc b/game2048/__pycache__/grid_2048.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b4ec16f7a48441ea6719758968776a24b0e1f56d GIT binary patch literal 5275 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 literal 0 HcmV?d00001 diff --git a/game2048/__pycache__/textual_2048.cpython-36.pyc b/game2048/__pycache__/textual_2048.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4fcab3570c43c02c800419b57b77edf6e961e609 GIT binary patch literal 1533 zcmXr!<>j(ddK0~im4V?g0}>EoU|?`yU|=ZjU|?WKVMt+2VM<|6VM$?4VM}38;Yi_3 z;Y#67;Ys05;Y;D4!=ECM!k8kMB9tPWB9bDSB9<baB9S7QB9$VYB9kHuRw0+dm?96B zQ%F%vkxWra5lm4|QAtrvQA<$=tI(Lk9L12LnWELg5XG3Houbpi5XF?Do1)jk5XGFL zAIzX>aEsj~H7&6;r{osHEk>hTj3&1jEp9Oxn%!bDHoC=RW^#+!(8%HzvyrLUEoM_g zqgyP721X{gSd0uzEN-!w7+9L!VzDr^G}7e1#gdnpoB9&u<Cjbf3=A(>Km-Sf5C9Ph zAOaKsFB?EC21W*kOa>+p!2%*UK!gB@P+(xV#p#@pnwwc%QdD`1(c>1AN9rvmpUhiK zPN}yToo+EY-(vK;#pr*F(d`zKU+OI;zr<TizUjA^9CL1QIOY^&BqpVn++uXR#prU2 z(e)Oi`z=P#TZ~?}7`<;X`rKml)nvZKXmE?su!xy~fgu^>U=RkmnU#To!5I`sCZITi z$Iu*>T80va6t-r@TE+^I8paf!Z1y6p5{49RkVv6KI71CX4WlGOFoPzq-z}D$)U=XY ztVNmW86~%vN(*kWq~w?9X|mj6OuxmLa*HwJ7GqMClWSf{QEHV!S$;`TszP#pZf;^; zN~(fJx`IY}Vrg<ls-})Yih@Q;QGR9#h@GLJk&#$hqN$^hq>+?Ztf^_GP-MZtz))lf zBCJ4!H3I`fRk$<EsLZ^w#GK5OR6PYQ1<EbcWWi>gCgUyE%)Elq5>2Kko|M#roW$hR z+|<01;wYBf{Ib-Q3`MpK3=F?)ovmU*i&Kk=V?r|Wa}$eW0xFX;5{q&Jit@8klS_(Y zK&dGvJux>G%qU5%C@D?Mi3f4?3My|27o{eq#24fwR;CukLxTzwQ^j1Mcw^*a<Y44t z<Y6qbM~+TL1_lOBSag~(Fn}VEv6-=!p+cjQr-ZSF0mKex$P-~?0KpQ56ef^JBts!r z1VaErAr~l8gBdiL{i;-)Gx9TwGmDE;s}yn)6-p8_b8=D@Qc^*j^dd0FN}(zw1R@R# zcO8XfgtpQ=g}nUSq@q-X)Vz|+)FM!%5M!z)Q;`h=1H&!m%)Am!##=1KnN_LaFoh6y zAUQs8@PK6E(~B}wctGhFl;ao}IT)E3nHYH(*%<kl*cgkP(8C9mL&3>i4LN*7Y8X=3 zve}DdN*GdDL16+43s8uG6F9qHsS+qy5q`@_RmdyNJ-o6gUm>Mbp(Nw*iriEMD}^E> zP@*&j5ukil3Q7sisWACG_0)>Y;*wN_g2ZA4MFlPe<j}xwpe8e#k+8sF3-NIEbqxk3 z#*&QGT#NwX2L}*X3LHY>pb!ETOrQ_~ryN%X1_nP(mLgDKfRhn8tcpOwkbnj`9>M|# cIfqSdeoARhsvRhm6|*rgFyydsuyb$&0Ez31HUIzs literal 0 HcmV?d00001 diff --git a/game2048/grid_2048.py b/game2048/grid_2048.py index 3a44c38..4abd342 100644 --- a/game2048/grid_2048.py +++ b/game2048/grid_2048.py @@ -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) @@ -203,33 +204,3 @@ def list_move_possible (grid): return(list_final) -def random_play(): - #on suppose que le jeu par defaut comprend une grille de 4x4 - - #phase d'initialisation du jeu - grid_game=init_game(4) - print(grid_to_string_with_size_and_theme(grid_game,THEMES["0"],4)) - - #phase de jeu - while not is_game_over(grid_game): - - #pour chaque tour - d=rd.choice(list_move_possible(grid_game)) #on choisi un mouvement - grid_game=move_grid(grid_game,d) #on le fait - grid_game=grid_add_new_tile(grid_game) #une tuile se crée - print(grid_to_string_with_size_and_theme(grid_game,THEMES["0"],4)) #on affuche le résulat - 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() diff --git a/game2048/run_2048.py b/game2048/run_2048.py new file mode 100644 index 0000000..53d5f14 --- /dev/null +++ b/game2048/run_2048.py @@ -0,0 +1,55 @@ +from grid_2048 import * +from textual_2048 import * + +def random_play(): + #on suppose que le jeu par defaut comprend une grille de 4x4 + + #phase d'initialisation du jeu + grid_game=init_game(4) + print(grid_to_string_with_size_and_theme(grid_game,THEMES["0"],4)) + + #phase de jeu + while not is_game_over(grid_game): + + #pour chaque tour + d=rd.choice(list_move_possible(grid_game)) #on choisi un mouvement + grid_game=move_grid(grid_game,d) #on le fait + grid_game=grid_add_new_tile(grid_game) #une tuile se crée + print(grid_to_string_with_size_and_theme(grid_game,THEMES["0"],4)) #on affuche le résulat + print("\n***********************************\n") #permet aux différentes grilles d'être plus lisible + + #vérification si le jeu est gagnant ou perdant + + if did_you_win(grid_game): + print("CONGRATS ! YOU WON !!!") + else : + print ("YOU FAIL, TRY AGAIN") + return + +def game_play(): + + # Saisie des paramètres + size = read_size_grid() + theme = read_theme_grid() + + # Initialisation + grid = init_game(size) + print(grid_to_string_with_size_and_theme(grid,theme,size)) + + # Phase de jeu + while not is_game_over(grid): + direction = read_player_command() # Choix de la direction + possibles = list_move_possible(grid) + if direction in possibles: + grid = move_grid(grid,direction) + grid = grid_add_new_tile(grid) + print(grid_to_string_with_size_and_theme(grid,theme,size)) + print("\n***********************************\n") + + # Test de victoire + if did_you_win(grid_game): + print("CONGRATS ! YOU WON !!!") + else : + print ("YOU FAIL, TRY AGAIN") + return + diff --git a/game2048/textual_2048.py b/game2048/textual_2048.py index a24c190..0fa73a0 100644 --- a/game2048/textual_2048.py +++ b/game2048/textual_2048.py @@ -1,3 +1,5 @@ +THEMES = {"0": {"name": "Default", 0: "", 2: "2", 4: "4", 8: "8", 16: "16", 32:"32", 64: "64", 128: "128", 256: "256", 512: "512", 1024: "1024", 2048: "2048",4096: "4096", 8192: "8192"}, "1": {"name": "Chemistry", 0: "", 2: "H", 4: "He", 8:"Li", 16: "Be", 32: "B", 64: "C", 128: "N", 256: "O", 512: "F", 1024: "Ne", 2048:"Na", 4096: "Mg", 8192: "Al"}, "2": {"name": "Alphabet", 0: "", 2: "A", 4: "B", 8:"C", 16: "D", 32: "E", 64: "F", 128: "G", 256: "H", 512: "I", 1024: "J", 2048: "K",4096: "L", 8192: "M"}} + # FONCTIONNALITE 3 def read_player_command(): -- GitLab