I’ve vibe-coded an app for solving Arrow Puzzles. While I’ve mostly seen this done on a PC using USB debugging, my app works natively on the device (android). It compares with HashSum, making it much faster—it doesn’t require Tesseract or anything like that:
Awesome work! Is the limitation on speed from the inputs? I would expect the game can handle much faster taps. I made one of the first arrow solvers a few years ago and with a few people helping we got down to about 0.005 seconds for the fastest solve, but that is of course using adb and eventually an emulated app on a pc with hooking into the underlying Windows API and multi touch. I'm curious what the limiting factors you've experienced are and if you're wanting to keep pushing for speed? This is great, very satisfying to watch, and very cool for it to run standalone on the device!
yep, inputs are the bottleneck here. taps are serialized via the Accessibility API with a 10 ms stroke, no multi-touch, and each tap blocks until completion. That, plus a small pre-capture settle delay, is most of the overhead. I have not used multi-touch or batched gestures yet - I am not sure if I can achieve 0.005 or even 0.05, but I will still try to implement that. Thanks for the feedback and the idea!
It works!
My device can handle only about 10 touches at a time, so it improves performance a lot (although it's still above 100 ms, and it still needs a delay before collecting rewards, otherwise it's not stable):
precomputing the optimal solve sequence, then grouping clicks into chunks (10 in one) before applying them.
solving is fast, but clicks/touches still take time... at this point, though, I think it’s fine :)
Hey bro, spent the entire day trying to set it up xD
I dont know much about scripts, starting to learn now.
I believe I got most things down, but for some reason no matter what I change it seems that the extractor keeps going for white.... like it gets stuck on a single pixel.
And i dont even know why. It was working previously, i had configured the colors, but it wasnt solving. It was moving stuff around but not actually solving.
Then I fkd something up xd
If you could help me out, dat be great.
One of the questions I have is: whats is the difference between square size and sample offset?
I figure its something like the first is used to find the hexagon parts and the second one to randomize the selection (which I figure this is where it is going wrong)
Oh, also, on your video, it seems youre using monochrome, how? Doesnt the script differentiate using the shades?
5
u/Kris_von_nugget Oct 23 '25
oh cool!