{"id":19602128,"url":"https://github.com/henrikvtcodes/intellisnake","last_synced_at":"2026-05-27T16:31:44.475Z","repository":{"id":207055122,"uuid":"718312827","full_name":"henrikvtcodes/intellisnake","owner":"henrikvtcodes","description":null,"archived":false,"fork":false,"pushed_at":"2024-01-31T22:57:03.000Z","size":1060,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T15:45:02.066Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/henrikvtcodes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-11-13T20:31:31.000Z","updated_at":"2023-12-29T02:20:28.000Z","dependencies_parsed_at":"2023-11-13T22:23:08.516Z","dependency_job_id":"ccc09d33-5a27-47a5-b87d-31d1ab222505","html_url":"https://github.com/henrikvtcodes/intellisnake","commit_stats":null,"previous_names":["henrikvtcodes/intellisnake"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/henrikvtcodes/intellisnake","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrikvtcodes%2Fintellisnake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrikvtcodes%2Fintellisnake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrikvtcodes%2Fintellisnake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrikvtcodes%2Fintellisnake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/henrikvtcodes","download_url":"https://codeload.github.com/henrikvtcodes/intellisnake/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrikvtcodes%2Fintellisnake/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33575510,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"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-11T09:22:19.569Z","updated_at":"2026-05-27T16:31:44.456Z","avatar_url":"https://github.com/henrikvtcodes.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# intellisnake\n\nBy Henrik VT [@henrikvtcodes](https://github.com/henrikvtcodes) and Kelsyn C [@LegendOfDust](https://github.com/LegendOfDust)\n\nIntelliSnake is a fun new version of the classic game Snake that comes with features such as:\n\n- Classic Single Player\n- 2P Multiplayer\n- An AI Algoritmic Opponent\n- Sound Effects\n\nSee below for different gamemodes!\n\n### Running the Game\n\n**Required Modules**\n\n```txt\npygame==2.5.2\npygame-widgets==1.1.4\n```\n\n**How to run**\n\n```sh\n# --- Create Virtual Environment ---\npython -m venv .venv\n# --- Activate Virtual Environment ---\n# Mac OS / Linux\nsource .venv/bin/activate\n# Windows\n./.venv/bin/Activate.ps1\n# --- Install Dependencies ---\npip install -r requirements.txt\n# --- Run Program! ---\npython src/main.py\n```\n\n**Fun Trick**\nIf you go into the `src/constants.py` file and find line 46, you can change the game speed. This increases the overall framerate therefore speeding up the game overall. It's extremely entertaining to crank up the speed, play AI mode, and just watch the AI fly around the board.\n\n## Gamemodes\n\n### Classic\n\nThe snake game that you know and love. Eat grapes like a Roman emperor and grow longer.\n\n### PvP\n\nEver wanted to play snake with a friend? PvP mode features collision mechanics that allow you to battle it out - who will get the grapes first? Can you cut eachother off and take the win?\n\n### AI Mode\n\nMan Vs. Machine. The machine is quick to get the grapes, so you better outsmart it!\n\n### God Mode\nClassic but with a twist - whenever you eat, a new effect befalls you! Some effects will stack. Can you beat this near-impossible challenge?\n\n### Development\n\n**Testing**  \nThe process we used to test functions of the game is simply playtesting. Whenever we updated/fixed anything, we would run the game and try to cause problems. This would involve things like keysmashing, intentionally running into walls, and setting the snakes to collide with eachother in various ways. In order to test the AI, we set the speed extremely high to make sure that it doesn't fail too quickly.\n\n**Work Distribution**\n| Henrik | Kelsyn |\n| ------ | ------ |\n| - AI Algorithm v1 | - AI Algorithm v2 |\n| - Main Loop Structure | - Art Assets \u0026 Color |\n| - Organization and Conventions | - Classic and pvp base programming |\n\n### Known Issues\n\n- The game will generally prevent you from doubling back on yourself, but if you press the right keys quick enough it will \"break the snake's neck\"\n- If allowed to run long enough, the AI algorithm will eventually trap itself, run into the human player, or hit the wall. Fixing this would be an order of magnitude more work because we would have to calculate moves ahead of time.\n\n## Credits and Citations\n\n- **Initial Game Inspiration:** https://www.edureka.co/blog/snake-game-with-pygame/\n- Prof. Cafiero for discovering the race condition that was making Henrik tear his hair out\n\n## Development: Get Started\n\n### VSCode\n\n1. Open Command Palette with\n   `Ctrl + Shift + P`\n2. Search for and click on the `Python: Create Environment` option\n3. Click on the `Venv` option\n4. Use (click on) default Python Version (should be highlighted)\n5. Select `requirements.txt` for dependencies to install, then click Ok\n\n✨You're ready to go! ✨\n\n### Manual\n\n1. Create the Virtual Environment\n\n```sh\npython -m venv .venv\n```\n\n2. Activate the Virtual Environment (may be able to ignore this if using VSCode)\n   MacOS\n\n```sh\n# Mac OS / Linux\nsource .venv/bin/activate\n# Windows\n./.venv/bin/Activate.ps1\n```\n\n3. Install Packages\n\n```sh\npip install -r requirements.txt\n```\n\n### Adding Packages\n\n1. Install packages\n\n```sh\npip install \u003cpackage\u003e\n```\n\n2. Delete and recreate `requirements.txt`\n\n```sh\n# Does not work on Windows\nrm -f requirements.txt \u0026\u0026 pip freeze \u003e requirements.txt\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenrikvtcodes%2Fintellisnake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhenrikvtcodes%2Fintellisnake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenrikvtcodes%2Fintellisnake/lists"}