Human Resource Machine solutions
This repo contains working solutions, in hopes of exchanging ideas to collaboratively come up with the most/size.speed optimized solutions (or simply to help those out there who are stuck). Even though the programs are created through a drag-and-drop interface within the game, copy/paste from/to the clipboard works as assembly source code seen in this repo.
File Naming Convention
The file naming convention used is:
solutions folder, inside a subfolder called
<level>-<level name>-<size par>.<speed par>,
speed are the number of commands and steps of the solution, which is deemed by the game as size and speed optimized if they are equal to or less than the par numbers in its folder's name.
type field is a descriptor for the type of solution (e.g. the algorithm used, whether it's an exploit etc.)
author is the GitHub username of the author of the solution.
solutions/07-Zero-Exterminator-4.23/4.23-atesgoral.asm means the solution is both size and speed optimized and is by user atesgoral.
Please issue a pull request while keeping in mind:
- The file naming convention is met
- If you're a new contributor, edit the contributors.yml file to add yourself
- Make sure your new solution passes tests (see below)
You need Node.js 4.1+ to be installed.
npm install to get all dependencies
npm test to run tests.
The tests involve the static/runtime analysis and benchmarking of each solution by utilizing:
- hrm-parser by @nrkn for static analysis of programs
- hrm-cpu by @nrkn for running programs and runtime analytics
- hrm-level-data by @atesgoral for level metadata for providing level constraints
- hrm-level-inbox-generator by @atesgoral for randomly generating level-appropriate inboxes for benchmarking
- hrm-level-outbox-generator by @atesgoral for determining the expected outboxes for given level + inbox for benchmarking