{"id":20256228,"url":"https://github.com/devcybiko/eldrow","last_synced_at":"2026-05-12T14:03:02.672Z","repository":{"id":99127963,"uuid":"449680140","full_name":"devcybiko/eldrow","owner":"devcybiko","description":null,"archived":false,"fork":false,"pushed_at":"2024-01-26T03:26:35.000Z","size":7589,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-11T10:13:58.180Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/devcybiko.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":"2022-01-19T12:21:46.000Z","updated_at":"2022-01-22T17:20:08.000Z","dependencies_parsed_at":"2025-01-14T03:35:40.407Z","dependency_job_id":"53b1e45c-1de3-48a4-8b45-19ff0923e29f","html_url":"https://github.com/devcybiko/eldrow","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/devcybiko/eldrow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devcybiko%2Feldrow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devcybiko%2Feldrow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devcybiko%2Feldrow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devcybiko%2Feldrow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devcybiko","download_url":"https://codeload.github.com/devcybiko/eldrow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devcybiko%2Feldrow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27355550,"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-11-29T02:00:06.589Z","response_time":56,"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-14T10:45:55.577Z","updated_at":"2025-11-29T15:02:45.780Z","avatar_url":"https://github.com/devcybiko.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ELDROW - The Wordle Solver\n\u003c!-- gitComment(README file [1687316048322]) --\u003e\n## Command\n`USAGE: eldrow.js --help --omitfile=omit.txt --omit=WORD --wordfile=five-letter-words.txt guess1=BGYBG guess2=BGYBG...`\n\n*  with no parameters, it will generate a first guess\n*  with parameters, it will generate a next guess\n*  enter guesses and results from Wordle as follows\n   - pattern has a letter for each letter in the guess\n   - G - for green\n   - Y - for yellow\n   - B - for black\n* If `eldrow` guesses a word that `Wordle` doesn't know, you can omit it (permantly) with the `--omit=WORD` option\n  \n## Example:\n```\n  $ eldrow.js\n  CARES\n  $ eldrow.js cares=BBBBY\n  SOILY (-but the game doesn't know SOILY! -)\n  $ eldrow.js cares=BBBBY --omit=SOILY\n  SONLY\n  $ eldrow.js cares=BBBBY SONLY=GBYBB\n  SUINT\n  $ eldrow.js CARES=BBBBY SONLY=GBYBB SUINT=GYBGB\n  SPUNK\n  $ eldrow.js CARES=BBBBY SONLY=GBYBB SUINT=GYBGB SPUNK=GBGGB\n  SHUNS (- winning word -)\n```\n\n## Notes\n\n### Basic Algorithm\nThe algorithm is pretty simple. \n* read a file of 5-letter words culled from a Scrabble dictionary.\n* compute the frequency of occurrence of each letter for every word in the dictionary\n  * note: I compute the frequency for each \"column\" or \"position\" in the words\n  * for example: \n  * 'S' is most frequent in the first and last positions\n  * 'A' is most frequent in the second and third positions\n  * 'E' is most frequent in the fourth position\n* Score each word\n  * for each position, find the \"priority\" of the letter (eg: S=0 for the first position, C=1 for the second position, etc)\n  * sum these \"priorities\" across the 5 letters of the word\n* Sort the scores.\n* Compute valid Patterns for each position\n  * start with all letters in the alphabet (A-Z)\n  * (Also, keep a list of all the \"must have\" letters)\n  * for each \"B\" (black) remove that letter from all positions\n  * for each \"G\" (green) set that position to that letter (and add it to the \"must have\" list)\n  * for each \"Y\" (yellow) remove that letter from that position (and add it to the \"must have\" list)\n  * for example: if the guess is CARES=BBBBG plus SONLY=GBYBB\n    * pattern-1: 'S',\n    * pattern-2: '-B-D-FGHIJK-MN-PQ-STUVWXZ',\n    * pattern-3: '-B-D-FGHIJK-M--PQ-STUVWXZ',\n    * pattern-4: '-B-D-FGHIJK-MN-PQ-STUVWXZ',\n    * pattern-5: '-B-D-FGHIJK-MN-PQ--TUVWXZ',\n    * must-have: [ 'S', 'N' ],\n* Compare every word in the dictionary to the patterns and sort them by 'score'\n* The top word is your next guess\n\n### Addtional logic\n* The first few guesses do not allow duplicate letters in the guessed words\n  * this promotes trying a variety of different letters\n* If there are too few letters in the \"must-have\" list, \n  * we look for words with other letters than the \"must-have\"\n  * for example if you have 3 guesses left, and you've only identified 2 of the letters\n  * (say, 'S' and 'N')\n  * `eldrow` will start guessing words that do not include 'S' and 'N' to use those spots to find the missing letters\n* If there are a number of words with equal score, `eldrow` will pick one at random\n\n## I'm Stumped\"","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevcybiko%2Feldrow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevcybiko%2Feldrow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevcybiko%2Feldrow/lists"}