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