By Maddy Adams (m20adams), Makarios Chung (chungma), and Shriyash Upadhyay (shriyash)
Blueprint.hs defines the Blueprint datatype that user edits to try to solve the level.
Factory.hs provides a way of checking if a Blueprint solves a level by converting it into the Factory datatype, and then running multiple steps of the Factory simulation until the level is solved (or not).
Machine.hs and Operator.hs define datatypes that live in Blueprints, such as a Source that creates values, or an Add that sums values.
ResourceUpdate.hs exposes a way for the Factory simulation to access and modify state through the Resources datatype.
BlueprintTests.hs generates random levels using GraphUtils.hs
This project compiles with stack build. You can add any needed dependencies
and update project metadata in package.yaml.
You can run the main executable with stack run. The entry point for the
executable is in Main.hs. It imports Lib.hs,
where the bulk of your code should be written.
Write your tests in the test directory. You can run the tests
with stack test.
Lastly, you can start a REPL with stack ghci.