diff --git a/.idea/dictionaries/Thomas.xml b/.idea/dictionaries/Thomas.xml new file mode 100644 index 0000000000000000000000000000000000000000..f6a1dfbf597a526633e0402435bc227d7d1cafa4 --- /dev/null +++ b/.idea/dictionaries/Thomas.xml @@ -0,0 +1,3 @@ +<component name="ProjectDictionaryState"> + <dictionary name="Thomas" /> +</component> \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 7518cc803b9a816a83e2eb86aec8d09c16b3c3d4..08da5fd6adbefd024ebbbec04b447b1654a9b7fc 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -1,7 +1,7 @@ <component name="InspectionProjectProfileManager"> <profile version="1.0"> <option name="myName" value="Project Default" /> - <inspection_tool class="PyPep8Inspection" enabled="true" level="WEAK WARNING" enabled_by_default="true"> + <inspection_tool class="PyPep8Inspection" enabled="false" level="WEAK WARNING" enabled_by_default="false"> <option name="ignoredErrors"> <list> <option value="W29" /> @@ -12,8 +12,22 @@ <option value="E501" /> <option value="W29" /> <option value="E501" /> +<<<<<<< HEAD +======= + <option value="W29" /> + <option value="E501" /> + <option value="W29" /> + <option value="E501" /> +>>>>>>> 1faf1cea7fd45cb7d6a421ea0113d9508a596695 </list> </option> </inspection_tool> + <inspection_tool class="PyPep8NamingInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" /> + <inspection_tool class="PyUnresolvedReferencesInspection" enabled="false" level="WARNING" enabled_by_default="false" /> + <inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false"> + <option name="processCode" value="true" /> + <option name="processLiterals" value="true" /> + <option name="processComments" value="true" /> + </inspection_tool> </profile> </component> \ No newline at end of file diff --git a/.idea/markdown-navigator.xml b/.idea/markdown-navigator.xml new file mode 100644 index 0000000000000000000000000000000000000000..3e62462de0f8927473033e666d4620850b53a7e2 --- /dev/null +++ b/.idea/markdown-navigator.xml @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="MarkdownProjectSettings" wasCopied="false"> + <PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true" openRemoteLinks="true" replaceUnicodeEmoji="false" lastLayoutSetsDefault="false"> + <PanelProvider> + <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" /> + </PanelProvider> + </PreviewSettings> + <ParserSettings gitHubSyntaxChange="false" emojiShortcuts="1" emojiImages="0"> + <PegdownExtensions> + <option name="ABBREVIATIONS" value="false" /> + <option name="ANCHORLINKS" value="true" /> + <option name="ASIDE" value="false" /> + <option name="ATXHEADERSPACE" value="true" /> + <option name="AUTOLINKS" value="true" /> + <option name="DEFINITIONS" value="false" /> + <option name="DEFINITION_BREAK_DOUBLE_BLANK_LINE" value="false" /> + <option name="FENCED_CODE_BLOCKS" value="true" /> + <option name="FOOTNOTES" value="false" /> + <option name="HARDWRAPS" value="false" /> + <option name="HTML_DEEP_PARSER" value="false" /> + <option name="INSERTED" value="false" /> + <option name="QUOTES" value="false" /> + <option name="RELAXEDHRULES" value="true" /> + <option name="SMARTS" value="false" /> + <option name="STRIKETHROUGH" value="true" /> + <option name="SUBSCRIPT" value="false" /> + <option name="SUPERSCRIPT" value="false" /> + <option name="SUPPRESS_HTML_BLOCKS" value="false" /> + <option name="SUPPRESS_INLINE_HTML" value="false" /> + <option name="TABLES" value="true" /> + <option name="TASKLISTITEMS" value="true" /> + <option name="TOC" value="false" /> + <option name="WIKILINKS" value="true" /> + </PegdownExtensions> + <ParserOptions> + <option name="ADMONITION_EXT" value="false" /> + <option name="ATTRIBUTES_EXT" value="false" /> + <option name="COMMONMARK_LISTS" value="true" /> + <option name="DUMMY" value="false" /> + <option name="EMOJI_SHORTCUTS" value="true" /> + <option name="ENUMERATED_REFERENCES_EXT" value="false" /> + <option name="FLEXMARK_FRONT_MATTER" value="false" /> + <option name="GFM_LOOSE_BLANK_LINE_AFTER_ITEM_PARA" value="false" /> + <option name="GFM_TABLE_RENDERING" value="true" /> + <option name="GITBOOK_URL_ENCODING" value="false" /> + <option name="GITHUB_LISTS" value="false" /> + <option name="GITHUB_WIKI_LINKS" value="true" /> + <option name="GITLAB_EXT" value="false" /> + <option name="GITLAB_MATH_EXT" value="false" /> + <option name="GITLAB_MERMAID_EXT" value="false" /> + <option name="HEADER_ID_NO_DUPED_DASHES" value="false" /> + <option name="JEKYLL_FRONT_MATTER" value="false" /> + <option name="MACROS_EXT" value="false" /> + <option name="NO_TEXT_ATTRIBUTES" value="false" /> + <option name="PARSE_HTML_ANCHOR_ID" value="false" /> + <option name="SIM_TOC_BLANK_LINE_SPACER" value="true" /> + </ParserOptions> + </ParserSettings> + <HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true" embedImages="false" embedHttpImages="false" imageUriSerials="false" addDocTypeHtml="true"> + <GeneratorProvider> + <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" /> + </GeneratorProvider> + <headerTop /> + <headerBottom /> + <bodyTop /> + <bodyBottom /> + </HtmlSettings> + <CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssUriSerial="true" isCssTextEnabled="false" isDynamicPageWidth="true"> + <StylesheetProvider> + <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" /> + </StylesheetProvider> + <ScriptProviders /> + <cssText /> + <cssUriHistory /> + </CssSettings> + <HtmlExportSettings updateOnSave="false" parentDir="" targetDir="" cssDir="" scriptDir="" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetExt="" useTargetExt="false" noCssNoScripts="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" /> + <LinkMapSettings> + <textMaps /> + </LinkMapSettings> + </component> +</project> \ No newline at end of file diff --git a/.idea/markdown-navigator/profiles_settings.xml b/.idea/markdown-navigator/profiles_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..57927c5a72b6696671ef9629d3734dda9d5f96b0 --- /dev/null +++ b/.idea/markdown-navigator/profiles_settings.xml @@ -0,0 +1,3 @@ +<component name="MarkdownNavigator.ProfileManager"> + <settings default="" pdf-export="" /> +</component> \ No newline at end of file diff --git a/TO_DO.md b/TO_DO.md new file mode 100644 index 0000000000000000000000000000000000000000..49e69d718fbb4992ef4b3e4bec6020a5ecf8809d --- /dev/null +++ b/TO_DO.md @@ -0,0 +1,7 @@ +- Affichage du score +- Coups en une commande +- Revenir un coup en arrière +- Dire quand un coup est impossible +- Meilleure interface (couleurs, animations, etc) +- Garder une forme de carré +- Sauvegarder et reprendre une partie diff --git a/game2048/__pycache__/run_2048.cpython-36.pyc b/game2048/__pycache__/run_2048.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8c81b8a02ee743faa1309fd3587d597527337a95 Binary files /dev/null and b/game2048/__pycache__/run_2048.cpython-36.pyc differ diff --git a/game2048/display_grid.py b/game2048/display_grid.py new file mode 100644 index 0000000000000000000000000000000000000000..fc47781557d1f70ced54798ee40dfa868ddcc278 --- /dev/null +++ b/game2048/display_grid.py @@ -0,0 +1,49 @@ +from tkinter import * +from run_2048 import * + +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"}} + +TILES_BG_COLOR = {0: "#9e948a", 2: "#eee4da", 4: "#ede0c8", 8: "#f1b078", \ + 16: "#eb8c52", 32: "#f67c5f", 64: "#f65e3b", \ + 128: "#edcf72", 256: "#edcc61", 512: "#edc850", \ + 1024: "#edc53f", 2048: "#edc22e", 4096: "#5eda92", \ + 8192: "#24ba63"} + +TILES_FG_COLOR = {0: "#776e65", 2: "#776e65", 4: "#776e65", 8: "#f9f6f2", \ + 16: "#f9f6f2", 32: "#f9f6f2", 64: "#f9f6f2", 128: "#f9f6f2", \ + 256: "#f9f6f2", 512: "#f9f6f2", 1024: "#f9f6f2", \ + 2048: "#f9f6f2", 4096: "#f9f6f2", 8192: "#f9f6f2"} + +TILES_FONT = {"Verdana", 40, "bold"} + +def main_run(): + + root = Tk() + background = Frame(root) + grid_size = 4 + theme = THEMES["0"] + graphical_grid = [] + labels = [] + game_grid = init_game(grid_size) + + for i in range(grid_size): + graphical_grid.append([]) + labels.append([]) + for j in range(grid_size): + graphical_grid[i].append(Label(master = background, bd = 1,relief = "ridge", bg = TILES_BG_COLOR[0], text = "",height = 5, width = 10)) + graphical_grid[i][j].grid(column = i, row = j) + + graphical_grid = graphical_update(graphical_grid,game_grid,grid_size,theme) + background.pack() + + root.mainloop() + +def graphical_update(graphical_grid,game_grid,grid_size,theme): + + for i in range(grid_size): + for j in range(grid_size): + graphical_grid[i][j].config(bg = TILES_BG_COLOR[game_grid[i][j]], fg = TILES_FG_COLOR[game_grid[i][j]], text = theme[game_grid[i][j]]) + + return graphical_grid + +main_run() diff --git a/game2048/grid_2048.py b/game2048/grid_2048.py index 1e23678e9d87a0efeb9ed9924f2345d506b3109e..aea1406e7a7ae054b54a1d7bca05a50c95e8b2e6 100644 --- a/game2048/grid_2048.py +++ b/game2048/grid_2048.py @@ -58,7 +58,11 @@ def grid_add_new_tile(grid): #attention, la fonction modifie la liste passée en argument ! return grid +<<<<<<< HEAD def init_game(n=4): +======= +def init_game(n = 4): +>>>>>>> 1faf1cea7fd45cb7d6a421ea0113d9508a596695 grid = create_grid(n) for new_tile in range(2): grid = grid_add_new_tile(grid) @@ -227,5 +231,8 @@ def random_play(): else : print ("YOU FAIL, TRY AGAIN") return() +<<<<<<< HEAD #TEST random_play() +======= +>>>>>>> 1faf1cea7fd45cb7d6a421ea0113d9508a596695 diff --git a/tuto_GUI.py b/tuto_GUI.py new file mode 100644 index 0000000000000000000000000000000000000000..25d9f6c50a9a8fc4b672d83fa913c767ed87cbf2 --- /dev/null +++ b/tuto_GUI.py @@ -0,0 +1,18 @@ +from tkinter import * +from pprint import pformat + +def print_bonjour(i): + label.config(text="Hello") + +root = Tk() +frame = Frame(root, bg='white', height=100, width=400) +entry = Entry(root) +label = Label(root) + +frame.grid(row=0, column=0) +entry.grid(row=1, column=0, sticky='ew') +label.grid(row=2, column=0) + +frame.bind('<ButtonPress>', print_bonjour) +entry.bind('<KeyPress>', print_bonjour) +root.mainloop()