{"id":22452050,"url":"https://github.com/woctezuma/dungleon-bot","last_synced_at":"2025-07-01T01:34:45.690Z","repository":{"id":48695806,"uuid":"516986746","full_name":"woctezuma/dungleon-bot","owner":"woctezuma","description":"Solver for Dungleon.","archived":false,"fork":false,"pushed_at":"2023-12-03T11:12:54.000Z","size":97,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-27T12:35:20.890Z","etag":null,"topics":["dungleon","dungleon-game","dungleon-solver","entropy","max-entropy","maxent","maximum-entropy","maximum-entropy-method","wordle","wordle-assistant","wordle-cheats","wordle-game","wordle-helper","wordle-python","wordle-solution","wordle-solver"],"latest_commit_sha":null,"homepage":"https://www.dungleon.com/","language":null,"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/woctezuma.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":"2022-07-23T07:16:45.000Z","updated_at":"2022-11-14T09:49:40.000Z","dependencies_parsed_at":"2023-12-03T12:22:15.731Z","dependency_job_id":"a6cc31c3-4f99-470f-950e-b43238fc57be","html_url":"https://github.com/woctezuma/dungleon-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/woctezuma/dungleon-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woctezuma%2Fdungleon-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woctezuma%2Fdungleon-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woctezuma%2Fdungleon-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woctezuma%2Fdungleon-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/woctezuma","download_url":"https://codeload.github.com/woctezuma/dungleon-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woctezuma%2Fdungleon-bot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262879493,"owners_count":23378625,"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":["dungleon","dungleon-game","dungleon-solver","entropy","max-entropy","maxent","maximum-entropy","maximum-entropy-method","wordle","wordle-assistant","wordle-cheats","wordle-game","wordle-helper","wordle-python","wordle-solution","wordle-solver"],"created_at":"2024-12-06T06:09:38.584Z","updated_at":"2025-07-01T01:34:45.654Z","avatar_url":"https://github.com/woctezuma.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!Note]\n\u003e I recommend to use the code at [`woctezuma/3b1b-wordle-solver`][wordle-3b1b-solver], which is much faster!\n\n# Dungleon Bot\n\nThis repository contains Python code to find the best starter guesses for Dungleon.\n\n[![Dungleon][img-cover]][game]\n\n## Characters\n\n[![Sprites][img-sprites]][img-sprites-original]\n\nAs official emojis:\n:bow_and_arrow: :bat: :moneybag: :yellow_circle: :dragon_face: :frog: :japanese_goblin: :crown: 🧙‍♀️ :imp: :japanese_ogre: :skull: :spider: :bust_in_silhouette: 🤡 :trophy: :man_farmer: :person_fencing: 🧙‍♂️ :zombie:\n\n## Algorithms\n\nI have collected a few open-source algorithms:\n- `Simple` maximizes the number of points attributed to guess feedbacks: 🟧 (2 points), 🟦 (1 point), ⬛ (0 point).\n- `Complex` minimizes the cardinality of the set of remaining solutions after each guess.\n- `MinMax` optimizes for the \"worst case\" scenario.\n- `MaxEntropy` maximizes the entropy of the set of patterns.\n\nFor each algorithm, there are two versions:\n- constrained: guesses are constrained to the set of **valid** solutions.\n- unconstrained: the set of guesses is 5-6 times larger, as **invalid** solutions are allowed.\n\n**Caveat**: the `Complex` algorithm is very slow!\nAvoid using it if possible, because the results are not much different to other algorithms anyway.\n\n## Usage\n\n-   Run [`dungleon-bot.ipynb`][colab-notebook]\n[![Open In Colab][colab-badge]][colab-notebook]\n\n## Results\n\n### Constrained\n\n- `Simple`\n![Simple][results-constrained-simple]\n- `Complex`\n![Complex][results-constrained-complex]\n- `MinMax`\n![MinMax][results-constrained-minmax]\n- `MaxEntropy`\n![MaxEnt][results-constrained-maxent]\n\n### Unconstrained\n\n- `Simple`\n![Simple][results-unconstrained-simple]\n- `Complex`\n![Complex][results-unconstrained-complex]\n- `MinMax`\n![MinMax][results-unconstrained-minmax]\n- `MaxEntropy`\n![MaxEnt][results-unconstrained-maxent]\n\n## Perspectives\n\nAs in Wordle, Dungleon features a hard mode ![Crystal][img-crystal], where \"any revealed hints must be used in subsequent guesses\".\nFuture development of the Dungleon Bot could take into account this additional difficulty.\n\nIn Dungleon, guess feedbacks mention if a character appears several times with a `+` in the top right corner of the character tile.\nThis additional piece of information could be taken into account by the Dungleon Bot.\n\n## References\n\n- The [official website][game]\n- A study of [the hidden rules][dungleon-rules] of Dungleon\n- Solvers for [Wordle][wordle-game]:\n  - Tyler Glaiel, [The mathematically optimal first guess in Wordle][wordle-bot-cpp-blog-post], December 2021\n  - [`TylerGlaiel/wordlebot`][wordle-bot-cpp] (`Simple`, `Complex`, `MinMax` in C++)\n  - [`GillesVandewiele/Wordle-Bot`][wordle-bot-python] (`MaxEntropy` in Python)\n  - [`woctezuma/Wordle-Bot`][wordle-bot-python-fork]: my (slow) fork.\n\n[game]: \u003chttps://www.dungleon.com/\u003e\n[img-cover]: \u003chttps://github.com/woctezuma/dungleon-bot/wiki/img/cover.png\u003e\n[img-sprites]: \u003chttps://github.com/woctezuma/dungleon-bot/wiki/img/sprites/big.png\u003e\n[img-crystal]: \u003chttps://github.com/woctezuma/dungleon-bot/wiki/img/sprites/crystal.png\u003e\n[img-sprites-original]: \u003chttps://www.dungleon.com/images/elements/big/sprites.png\u003e\n[dungleon-rules]: \u003chttps://github.com/woctezuma/dungleon\u003e\n[wordle-game]: \u003chttps://www.nytimes.com/games/wordle\u003e\n[wordle-bot-cpp-blog-post]: \u003chttps://medium.com/@tglaiel/the-mathematically-optimal-first-guess-in-wordle-cbcb03c19b0a\u003e\n[wordle-bot-cpp]: \u003chttps://github.com/TylerGlaiel/wordlebot\u003e\n[wordle-bot-python]: \u003chttps://github.com/GillesVandewiele/Wordle-Bot\u003e\n[wordle-bot-python-fork]: \u003chttps://github.com/woctezuma/Wordle-Bot\u003e\n[wordle-3b1b-solver]: \u003chttps://github.com/woctezuma/3b1b-wordle-solver\u003e\n[results-constrained-simple]: \u003chttps://github.com/woctezuma/dungleon-bot/wiki/img/results/constrained/cpp_simple.png\u003e\n[results-constrained-complex]: \u003chttps://github.com/woctezuma/dungleon-bot/wiki/img/results/constrained/cpp_complex.png\u003e\n[results-constrained-minmax]: \u003chttps://github.com/woctezuma/dungleon-bot/wiki/img/results/constrained/cpp_minmax.png\u003e\n[results-constrained-maxent]: \u003chttps://github.com/woctezuma/dungleon-bot/wiki/img/results/constrained/python_maxent.png\u003e\n[results-unconstrained-simple]: \u003chttps://github.com/woctezuma/dungleon-bot/wiki/img/results/unconstrained/cpp_simple.png\u003e\n[results-unconstrained-complex]: \u003chttps://github.com/woctezuma/dungleon-bot/wiki/img/results/unconstrained/cpp_complex.png\u003e\n[results-unconstrained-minmax]: \u003chttps://github.com/woctezuma/dungleon-bot/wiki/img/results/unconstrained/cpp_minmax.png\u003e\n[results-unconstrained-maxent]: \u003chttps://github.com/woctezuma/dungleon-bot/wiki/img/results/unconstrained/python_maxent.png\u003e\n[colab-notebook]: \u003chttps://colab.research.google.com/github/woctezuma/dungleon-bot/blob/colab/dungleon-bot.ipynb\u003e\n[colab-badge]: \u003chttps://colab.research.google.com/assets/colab-badge.svg\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoctezuma%2Fdungleon-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwoctezuma%2Fdungleon-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoctezuma%2Fdungleon-bot/lists"}