{"id":13645683,"url":"https://github.com/mattbierner/STT-C-Compile-Time-Snake","last_synced_at":"2025-04-21T14:32:01.022Z","repository":{"id":26003061,"uuid":"29445574","full_name":"mattbierner/STT-C-Compile-Time-Snake","owner":"mattbierner","description":"Snake/Nibbler implementation using C++ template metaprogamming","archived":false,"fork":false,"pushed_at":"2016-12-16T04:51:51.000Z","size":34,"stargazers_count":206,"open_issues_count":0,"forks_count":9,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-11-09T18:43:22.633Z","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":"LineageOS/android_device_xiaomi_capricorn","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mattbierner.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}},"created_at":"2015-01-18T23:48:15.000Z","updated_at":"2024-11-08T15:30:20.000Z","dependencies_parsed_at":"2022-07-25T15:22:04.518Z","dependency_job_id":null,"html_url":"https://github.com/mattbierner/STT-C-Compile-Time-Snake","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattbierner%2FSTT-C-Compile-Time-Snake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattbierner%2FSTT-C-Compile-Time-Snake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattbierner%2FSTT-C-Compile-Time-Snake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattbierner%2FSTT-C-Compile-Time-Snake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mattbierner","download_url":"https://codeload.github.com/mattbierner/STT-C-Compile-Time-Snake/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250070250,"owners_count":21369842,"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","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-08-02T01:02:39.637Z","updated_at":"2025-04-21T14:32:00.724Z","avatar_url":"https://github.com/mattbierner.png","language":"C++","readme":"# Compile Time C++ Snake Game\n\nImplementation of Snake / Nibbler using C++14 template metaprogramming. All the logic is implemented at compile time. When the program is run, it prints out the result of gameplay. [Here's a post covering the implementation in more detail][post].\n\nTwo versions are included:\n* An \"interactive\" game that saves state between compiler runs. Each compile\n  advances one turn. Found on the `interactive` branch.\n* A static version that plays the entire game in a single compile. This is the version on the main branch.\n\n## Interactive\nPlays one step of the game every time the game is recompiled. Uses compiler flags to control input:\n\n```\n$ clang++ -std=c++1y main.cpp -D COMMAND -o snake ; ./snake\n```\n\nValid commands are UP, DOWN, LEFT, and RIGHT. If no command is entered, the snake will go straight.\nYou can reset to the original state by running `./reset.sh`. \n\n\n```\nbash-3.2$ ./reset.sh \nbash-3.2$ clang++ -std=c++1y main.cpp  -o snake ; ./snake\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺▶*╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\nbash-3.2$ clang++ -std=c++1y main.cpp -D RIGHT -o snake ; ./snake\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺*╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺▶▶╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\nbash-3.2$ clang++ -std=c++1y main.cpp -o snake ; ./snake\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺*╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺▶▶╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\nbash-3.2$ clang++ -std=c++1y main.cpp -D UP -o snake ; ./snake\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺*╺╺\n╺╺╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺╺▶╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\nbash-3.2$ clang++ -std=c++1y main.cpp -o snake ; ./snake\n------------------\n╺*╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺╺▶╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\nbash-3.2$ clang++ -std=c++1y main.cpp -o snake ; ./snake\n------------------\n╺*╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\nbash-3.2$ clang++ -std=c++1y main.cpp -D RIGHT -o snake ; ./snake\n------------------\n╺*╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺▲▶╺\n╺╺╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\nbash-3.2$ clang++ -std=c++1y main.cpp -o snake ; ./snake\n------------------\n╺*╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺▲▶▶\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\nbash-3.2$ clang++ -std=c++1y main.cpp -o snake ; ./snake\n-- You Are Dead --\n╺*╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺▲▶█\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n```\n## Static \nPlays the entire game in a single compiler run. This code is on the main branch.\n\n```\nint main(int argc, const char* argv[])\n{\n    using inputs = PlayerInput\u003c\n        Input::Right, Input::Up, Input::None, Input::Right, Input::Up,\n        Input::None, Input::None, Input::Left, Input::None, Input::None,\n        Input::None, Input::None, Input::None, Input::Down, Input::None,\n        Input::None, Input::None, Input::None, Input::None, Input::None,\n        Input::None, Input::Right, Input::Up, Input::Left\u003e;\n\n    using state = InitialState;\n    \n    using game = play_t\u003cinputs, state\u003e;\n\n    Printer\u003cgame\u003e::Print(std::cout);\n    \n    return 0;\n}\n```\n\n\n```\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺▶*╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺*╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺▶▶╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺*╺╺\n╺╺╺╺╺╺▲╺╺╺\n╺╺╺╺╺╺▶╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺▲*╺╺\n╺╺╺╺╺╺▲╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺*╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺▲▶╺╺\n╺╺╺╺╺╺▲╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺*╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺▲▶╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺*╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺╺▶╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺*╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺*╺╺╺╺◀▲╺╺\n╺╺╺╺╺╺╺▲╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺*╺╺╺◀◀▲╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺*╺╺◀◀◀╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺*╺◀◀◀╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺*◀◀◀╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺◀◀◀◀╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺*╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺◀◀◀╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺*╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺◀◀╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺*╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺◀╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺*╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺*╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺*╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺*╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺╺*╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼*╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n*╺╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼▶╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------------------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n*╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺▼▲╺╺╺╺╺╺╺\n╺▼▶╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n------ dead ------\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n*╺╺╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\n╺▼╺╺╺╺╺╺╺╺\n╺█▲╺╺╺╺╺╺╺\n╺▼▶╺╺╺╺╺╺╺\n╺╺╺╺╺╺╺╺╺╺\nProgram ended with exit code: 0\n```\n\n[post]: https://blog.mattbierner.com/stupid-template-tricks-snake/","funding_links":[],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattbierner%2FSTT-C-Compile-Time-Snake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmattbierner%2FSTT-C-Compile-Time-Snake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattbierner%2FSTT-C-Compile-Time-Snake/lists"}