No description
Find a file
2024-12-24 23:18:41 +01:00
assets replace text buttons for exit and save with icon buttons 2024-12-22 21:04:27 +01:00
levels add more levels 2024-12-24 22:43:21 +01:00
src cleanup 2024-12-24 23:18:41 +01:00
.gitignore add windows build process 2024-12-21 19:01:42 +01:00
build.rs group levels into chapters 2024-12-22 16:39:40 +01:00
Cargo.lock set window title and package name 2024-12-09 12:42:50 +01:00
Cargo.toml set window title and package name 2024-12-09 12:42:50 +01:00
Makefile add windows build process 2024-12-21 19:01:42 +01:00
README.md remove old notes 2024-12-24 22:47:55 +01:00
rustfmt.toml init 2024-10-03 22:59:49 +02:00

Marble Machinations

(working title)

logic mostly like https://git.crispypin.cc/CrispyPin/marble

todo

  • comments
  • accessibility
    • ui scaling
    • background colour setting
    • configurable hotkeys
    • hotkeys for everything (no mouse needed to play)
    • font selection (possibly a lot of work)
  • more levels
  • scroll output bytes
  • make direct power (comparator -> machine) work, (needs storing power direction in machine tiles)
  • cut selections, copy to system clipboard
  • timestamps in solutions and blueprints
  • lock tile types for early levels to make it less overwhelming
  • display tool variant more clearly (it's not obvious there are more states)
  • option to use 8-bit marbles?
  • blueprint rotation?

file hierarchy

- assets/
- levels/
  - chapter_01.json
  - chapter_02.json
  - sandbox.json
- user/
  - solutions/
    - output/
      - solution_0.json
      - solution_1.json
    - copy_input/
      - solution_0.json
      - solution_3.json
  - blueprints
    - blueprint_0.json

levels

intro, basic mechanics

  • output a zero (marble, output)
  • output multiple numbers in sequence (digits)
  • output zeroes forever (looping/arrows, button, silo output)
  • copy the input (input)
  • increment every number (math tiles)
  • copy only odd input numbers (comparator, flipper)

0-terminated list processing

  • copy the second list
  • calculate list length (math, silo input)
  • count instances of 5 in a list
  • reverse a list (bouncing)

text

  • convert text to lowercase
  • convert a number to decimal ascii
  • parse an ascii number

advanced list processing

  • index a list
  • reverse and return the first n elements of a list, with n given first
  • add two lists element-wise
  • sort a list