{"id":19421693,"url":"https://github.com/braheezy/hangman","last_synced_at":"2025-04-24T14:33:00.449Z","repository":{"id":60579888,"uuid":"526769424","full_name":"braheezy/hangman","owner":"braheezy","description":"Hangman TUI :skull_and_crossbones:","archived":false,"fork":false,"pushed_at":"2022-09-18T18:06:55.000Z","size":1060,"stargazers_count":12,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-03T06:51:07.258Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","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/braheezy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-08-19T22:40:10.000Z","updated_at":"2024-11-11T21:50:00.000Z","dependencies_parsed_at":"2022-10-01T17:10:23.729Z","dependency_job_id":null,"html_url":"https://github.com/braheezy/hangman","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/braheezy%2Fhangman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/braheezy%2Fhangman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/braheezy%2Fhangman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/braheezy%2Fhangman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/braheezy","download_url":"https://codeload.github.com/braheezy/hangman/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250643633,"owners_count":21464216,"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-11-10T13:29:29.172Z","updated_at":"2025-04-24T14:33:00.015Z","avatar_url":"https://github.com/braheezy.png","language":"Go","funding_links":[],"categories":["\u003ca name=\"games\"\u003e\u003c/a\u003eGames"],"sub_categories":[],"readme":"![demo](./assets/demo.gif)\n\n\n# hangman\nA Go TUI [Hangman](https://www.wikihow.com/Play-Hangman) game built with the lovely [BubbleTea](https://github.com/charmbracelet/bubbletea) framework.\n\nThis project exists to teach myself Go and learn about BubbleTea because it looks like an understandable, powerful, and pleasing looking TUI framework. My past attempt at a [TUI in Python](https://github.com/braheezy/pyrdle) didn't go so well. It's already going much better with this project :)\n\n## Installation\nThe easiest way to run `hangman` is to use one of the [pre-compiled binaries](https://github.com/braheezy/hangman/releases) in the Releases.\n\nOr install it with `go`:\n\n    go install github.com/braheezy/hangman@latest\n\nOr from source, clone the project and run:\n\n    go run main.go\n\n\nEnjoy!\n\n## Feature Status :partying_face:\nThe following is to be implemented:\n- [x] End game lose condition :face_with_head_bandage:\n    - Yes, right now if you can't solve the word, the program crashes\n- [x] Show guessed letters :b::a:\n    - The user can't see which letters are guessed which is awkward when playing\n- [x] Beautification :sunglasses:\n    - Add Style to:\n        - [x] Hangman graphic\n        - [x] Hangman flashing on guesses\n        - [x] User input area\n        - [x] Header\n        - [x] Footer\n        - [x] Guesses\n        - [x] Banner area and the various messages that appear there\n- [x] Clear terminal screen :boom:\n    - Before launching, clear the entire screen for maximum cleanliness\n- [x] Sanitize better :earth_americas:\n    - Characters like `.` and nothing are deemed okay. That's stupid\n- [x] Show word on loss :face_with_head_bandage:\n    - Don't leave them hanging!\n- [x] Support light mode terminals :angel:\n    - It works okay but it could be better for heathens using light color themes\n- [x] Handle screen resizing better :straight_ruler:\n    - In `View()` use knowledge of window dimensions to smartly draw things:\n        - [x] If the keyboard doesn't fit, remove it\n        - [x] If the title doesn't fit, hide it\n        - [x] If the board tiles are too long, wrap them. This has been seen with long (10+ characters) words to guess.\n- [ ] Allow users to change theme :art:\n    - Port the current color code definitions to some type of config file (YAML?)\n    - Read the file at runtime\n- [x] Build and distribute binaries :construction:\n    - [x] Provide build instructions for eager beavers\n    - [x] Make binaries and add to Releases\n    - [x] CI/CD everything above\n- [ ] Decide if implementing a scalable Difficulty mode is worth it\n\n## More\nLight mode support :partying_face:\n\n![demo](./assets/light-demo.png)\n\n## Contributing\nPlease contribute! For small things, please fork and open a PR. For large changes, please submit an Issue first.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbraheezy%2Fhangman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbraheezy%2Fhangman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbraheezy%2Fhangman/lists"}