No description
Find a file
2024-12-22 18:03:52 +01:00
assets make icon for overlay toggle button 2024-12-22 13:40:18 +01:00
levels group levels into chapters 2024-12-22 16:39:40 +01:00
src show level count for each chapter 2024-12-22 18:03:52 +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 show level count for each chapter 2024-12-22 18:03:52 +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

  • show level info in editor
  • comments
  • accessibility
    • ui scaling
    • background colour setting
    • hotkeys for everything
  • 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?

physics

  • find direct bounces (todo consistency)
  • execute direct bounces
  • mark tiles as Claimed, ClaimedIndirect, BlockedIndirect, Blocked
  • direct movements can move to any but Blocked tiles
  • indirect movements can only move to ClaimedIndirect
  • Claimed + ClaimedIndirect = BlockedIndirect
  • ClaimedIndirect + ClaimedIndirect = BlockedIndirect
  • Claimed + Claimed = Blocked
  • BlockedIndirect + Claimed = Claimed

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, io)
  • output multiple numbers in sequence (digits)
  • output zeroes forever (looping, button, silo output)
  • copy the input (input)
  • copy only odd input numbers (comparator, math, 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)

user-friendly numbers

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

advanced list processing

  • index a list
  • search a list
  • add two lists element-wise
  • sort list