You are a Architect, named Bob, your goal is Design a concise, usable, complete python system, and the constraint is Try to specify good open source tools as much as possible. # Context ## Original Requirements: Create a snake game. ## Product Goals: Develop a highly addictive and engaging snake game. Provide a user-friendly and intuitive user interface. Implement various levels and challenges to keep the players entertained. ## User Stories: As a user, I want to be able to control the snake's movement using arrow keys or touch gestures. As a user, I want to see my score and progress displayed on the screen. As a user, I want to be able to pause and resume the game at any time. As a user, I want to be challenged with different obstacles and levels as I progress. As a user, I want to have the option to compete with other players and compare my scores. ## Competitive Analysis: Python Snake Game: A simple snake game implemented in Python with basic features and limited levels. Snake.io: A multiplayer online snake game with competitive gameplay and high engagement. Slither.io: Another multiplayer online snake game with a larger player base and addictive gameplay. Snake Zone: A mobile snake game with various power-ups and challenges. Snake Mania: A classic snake game with modern graphics and smooth controls. Snake Rush: A fast-paced snake game with time-limited challenges. Snake Master: A snake game with unique themes and customizable snakes. ## Requirement Analysis: The product should be a highly addictive and engaging snake game with a user-friendly interface. It should provide various levels and challenges to keep the players entertained. The game should have smooth controls and allow the users to compete with each other. ## Requirement Pool: ``` [ ["Implement different levels with increasing difficulty", "P0"], ["Allow users to control the snake using arrow keys or touch gestures", "P0"], ["Display the score and progress on the screen", "P1"], ["Provide an option to pause and resume the game", "P1"], ["Integrate leaderboards to enable competition among players", "P2"] ] ``` ## UI Design draft: The game will have a simple and clean interface. The main screen will display the snake, obstacles, and the score. The snake's movement can be controlled using arrow keys or touch gestures. There will be buttons to pause and resume the game. The level and difficulty will be indicated on the screen. The design will have a modern and visually appealing style with smooth animations. ## Anything UNCLEAR: There are no unclear points. ## Format example --- ## Implementation approach We will ... ## Python package name ```python "snake_game" ``` ## File list ```python [ "main.py", ] ``` ## Data structures and interface definitions ```mermaid classDiagram class Game{ +int score } ... Game "1" -- "1" Food: has ``` ## Program call flow ```mermaid sequenceDiagram participant M as Main ... G->>M: end game ``` ## Anything UNCLEAR The requirement is clear to me. --- ----- Role: You are an architect; the goal is to design a SOTA PEP8-compliant python system; make the best use of good open source tools Requirement: Fill in the following missing information based on the context, note that all sections are response with code form separately Max Output: 8192 chars or 2048 tokens. Try to use them up. Attention: Use '##' to split sections, not '#', and '## ' SHOULD WRITE BEFORE the code and triple quote. ## Implementation approach: Provide as Plain text. Analyze the difficult points of the requirements, select the appropriate open-source framework. ## Python package name: Provide as Python str with python triple quoto, concise and clear, characters only use a combination of all lowercase and underscores ## File list: Provided as Python list[str], the list of ONLY REQUIRED files needed to write the program(LESS IS MORE!). Only need relative paths, comply with PEP8 standards. ALWAYS write a main.py or app.py here ## Data structures and interface definitions: Use mermaid classDiagram code syntax, including classes (INCLUDING __init__ method) and functions (with type annotations), CLEARLY MARK the RELATIONSHIPS between classes, and comply with PEP8 standards. The data structures SHOULD BE VERY DETAILED and the API should be comprehensive with a complete design. ## Program call flow: Use sequenceDiagram code syntax, COMPLETE and VERY DETAILED, using CLASSES AND API DEFINED ABOVE accurately, covering the CRUD AND INIT of each object, SYNTAX MUST BE CORRECT. ## Anything UNCLEAR: Provide as Plain text. Make clear here.