Skip to content

jackmalcom/solvescapes

Repository files navigation

Wordscapes Solver

A basic solver for Wordscapes, built with TypeScript, ADB, and Tesseract.js.

⚠️ This was done in a weekend, it works but don't expect clean code! ⚠️

Setup

  • Make sure you have Bun and ADB installed
  • Connect your phone via USB, make sure debug mode is enabled
  • Go to a screen with a wordscapes puzzle
  • bun i
  • bun dev
  • The first run will likely fail if you haven't already authorized your computer, just authorize, and run again

How it works

After establishing an ADB connection, the solver will take a screenshot, then process that to get a black and white image that only contains the letters. The letters will then be combined into a single image, where they can be run through OCR. This is since OCR engines often struggle with scattered letters. Once OCR is run, the letters will be mapped back to their position in the original image, which gives us their position on the screen. Once we know the letters and their position, they are run through the word unscrambler, which gives us a list of valid words. The words are then passed to a function that will attempt to swipe the word on the screen, given the positions of the letters.

Example OCR output

ocr result

combined letters

Notes + Caveats

  • The dictionary is supplied by dwyl/english-words, you can read their license here
  • Currently, this project assumes that you have the game open with a Wordscapes puzzle. The game will attempt to open the app if it isn't already open, but does not have any other logic for navigating between puzzles.
  • There are also no checks to detect if the puzzle is solved before every word has been guessed.
  • This was written to run on my Pixel 7, while it likely works on a variety of Android phones, I have not verified this.
  • Since I don't have access to the exact dictionary Wordscapes uses, some words may be missing.

About

Wordscapes puzzle solver

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors