Package: hackmatch
Cross-platform Exapunks HACK*MATCH botYet another bot forExapunks' amazing (and annoyingly hard)HACK*MATCHarcade minigame.Want to score 100,000 points and grab thehardest of its achievementsand join the 0,7% club? Look no further!Don't feel frustrated if you, like me, have no skills for a NES-like reflex game
and think such arcade game have no place in a logic/puzzleprogramminggame
such as Exapunks.Why create another bot? Well, I felt it would not be cheating if Iprogrammedthe bot myself! Exapunks is all about coding and hacking,
so creating a bot to hackitfits in perfectly!See it in action!FeaturesCross Platform, works on Windows, macOS and LinuxWorks on several resolutions, from 1920x1200 to 1366x768Read and write game settings to get user's current keyboard mapping and to
automatically turn off CRT effects.Launch the game if needed, using Steam'ssteam://rungameid/716490game URI.Pure Python: easy to understand, install and run, no compiler or other tools needed.Command-line arguments to benchmark, debug, watch-only and more.Heavily inspired by and adapted from:Fidel-solver's exapunks-hack-match botC++, X11 and 1600x900 only, requires custom keys, has fuzzy tolerance on colors.Arguably the most well-known reference, possibly the first bot published.+500K points recorded on YouTube.Laelath's hack-match-botRust, X11 and 1920x1080 only, requires default keys and no CRT, no fuzziness.An elegant code with great insights on image parsing and board solving.+8M points recorded on YouTube.Special thanks toDissecting fidelSolver's Game Bot for Playing Hack*Match,
an amazing presentation by Alan Shen that helped me understand the basic concepts
and building blocks of both above projects.InstallingRun this to install the bot and its dependencies, preferably in a virtual environment:pip3 install hackmatchThis bot is written in Python and uses PyAutoGUI, which has some pre-requisites
beyond itspipinstall. For Debian, Ubuntu and derivatives, just run:sudo apt install python3-tkFor instructions on all platforms, see thePyAutoGUI documentation.I've also included a tool to automatically create the python virtual environment,apt-install the requirements andpip-install dependencies and the bot itself,
all in a single step:./install.shNote: even if code itself is compatible with earlier Python versions,
some dependencies requirePython 3.7. It was fully tested on Python 3.8.UsageFor basic usage, just run:hackmatch-botIf the game is installed in Steam, it will automatically launch Exapunks
if not already running.Keep the bot running (i.e., leave the terminal open), and manually enter and
start the HACK*MATCH minigame.Profit!Debugging, testing or fine-tuning?$hackmatch-bot--helpusage: hackmatch-bot [-h] [-q | -v] [--benchmark] [--watch] [--solve-time TIME][--board TEXT | IMAGE]positional arguments:IMAGE              Ignore game window and solve IMAGE instead.Useful when debugging with --verbose.optional arguments:-h, --help         show this help message and exit-q, --quiet        Suppress informative messages.-v, --verbose      Verbose mode, output extra info.--benchmark        Benchmark mode, run for 30 seconds.Best used with --quiet and game already launched.--watch            Watch mode, read and solve board but do not play.--solve-time TIME  Time in milliseconds to solve each parsed board,0 for unlimited. [Default: 850 ms]--board TEXT       Ignore game window and solve TEXT instead.Copyright (C) 2023 Rodrigo Silva (MestreLion) <linux@rodrigosilva.com>License: GPLv3 or later, at your choice. See <http://www.gnu.org/licenses/gpl>ContributingPatches are welcome! Fork, hack, request pull!See theTo-Do Listfor more updated technical information and planned features.If you find a bug or have any enhancement request, please to open anew issueAuthorRodrigo Silva (MestreLion)linux@rodrigosilva.comLicense and CopyrightCopyright (C) 2023 Rodrigo Silva (MestreLion) <linux@rodrigosilva.com>.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.