{"id":19330540,"url":"https://github.com/aventhis/brickgame_snake_tetris","last_synced_at":"2025-10-14T01:04:22.297Z","repository":{"id":256936243,"uuid":"856872569","full_name":"aventhis/BrickGame_Snake_Tetris","owner":"aventhis","description":"A C++ implementation of the classic Snake game, following object-oriented principles and using a graphical user interface. Includes both game logic and desktop GUI.","archived":false,"fork":false,"pushed_at":"2024-09-13T11:39:28.000Z","size":7179,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-14T01:03:54.802Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aventhis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-13T11:18:47.000Z","updated_at":"2024-12-01T20:58:26.000Z","dependencies_parsed_at":"2024-09-14T01:28:04.549Z","dependency_job_id":null,"html_url":"https://github.com/aventhis/BrickGame_Snake_Tetris","commit_stats":null,"previous_names":["aventhis/brickgame_snake_cpp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aventhis/BrickGame_Snake_Tetris","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aventhis%2FBrickGame_Snake_Tetris","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aventhis%2FBrickGame_Snake_Tetris/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aventhis%2FBrickGame_Snake_Tetris/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aventhis%2FBrickGame_Snake_Tetris/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aventhis","download_url":"https://codeload.github.com/aventhis/BrickGame_Snake_Tetris/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aventhis%2FBrickGame_Snake_Tetris/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017456,"owners_count":26086080,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T02:37:02.005Z","updated_at":"2025-10-14T01:04:22.253Z","avatar_url":"https://github.com/aventhis.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BrickGame Snake\n\n## Introduction\n\n`BrickGame Snake` is a C++ project that implements the Snake game using object-oriented programming principles. The game includes a library for game logic and a desktop graphical interface for user interaction. The project also follows the MVC pattern to separate concerns between the game logic and interface.\n\n## Features\n\n- Classic Snake game mechanics.\n- Uses a finite-state machine to formalize game logic.\n- Implements MVC pattern for clear separation between logic, view, and controller.\n- Supports scoring and game record tracking.\n- Level mechanics that increase the speed of the snake as the player progresses.\n\n## Project Structure\n\n- **Library**: The game logic is located in the `src/brick_game/snake` folder.\n- **Desktop GUI**: The user interface is located in the `src/gui/desktop` folder.\n- **Console Interface**: Supports the Snake game from the BrickGame v1.0 project.\n\n## Game Mechanics\n\n1. **Snake Movement**: The snake moves one block automatically when the game timer expires.\n2. **Apples**: The snake's length increases by one when it consumes an apple.\n3. **Winning Condition**: The player wins when the snake reaches a length of 200 units.\n4. **Losing Condition**: The player loses when the snake crashes into itself or the field boundary.\n5. **Controls**: The player can change the snake's direction using the arrow keys and speed up its movement by pressing the action key.\n\n## Bonus Features\n\n### Scoring and Game Record\n\n- The game tracks the player's score, with one point awarded per apple.\n- The highest score is saved between sessions.\n\n### Level Mechanics\n\n- The snake's speed increases with each new level (every 5 points), up to a maximum of 10 levels.\n\n## Makefile Targets\n\n- **make all**: Build the entire project, including the game logic and GUI.\n- **make clean**: Remove all compiled object files and executables.\n- **make test**: Compile and run unit tests to verify the game logic.\n- **make install**: Install the game on your system.\n- **make uninstall**: Remove the game from your system.\n- **make dist**: Create a distributable package of the project.\n- **make dvi**: Generate the project documentation.\n- **make gcov_report**: Generate a code coverage report in HTML format.\n\n## Features\n\n- Two classic games: Tetris and Snake.\n- Simple user interface built using Qt.\n- High score and level tracking for both games.\n- Easy-to-use controls for start, pause, and quit.\n- Real-time score and game-over detection.\n  \n## Controls\n\n- **Start**: Starts the game.\n- **Pause**: Pauses the game.\n- **Quit**: Exits the game.\n\n## Game Screens\n\nHere are some screenshots showcasing the gameplay:\n\n### Tetris Gameplay\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eGame Start\u003c/th\u003e\n    \u003cth\u003eGameplay\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"src/docs/screenshots/Screenshot11.png\" height=\"300\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"src/docs/screenshots/Screenshot41.png\" height=\"300\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### Snake Gameplay\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eSnake Start\u003c/th\u003e\n    \u003cth\u003eGame Over\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"src/docs/screenshots/Screenshot21.png\" height=\"300\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"src/docs/screenshots/Screenshot31.png\" height=\"300\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faventhis%2Fbrickgame_snake_tetris","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faventhis%2Fbrickgame_snake_tetris","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faventhis%2Fbrickgame_snake_tetris/lists"}