Projects
Larger programs, built one milestone at a time. Each milestone starts from your own code of the one before it, so at the end you have one whole program that you wrote.
- A text adventure (After module 24: Lists inside objects): A small game you play by typing. Walk between the rooms of an old lighthouse, pick up things, unlock a door and light the lamp, with the whole world read from a file and the game saved to one.
- A loan desk (After module 43: Writing files): A lending desk for the tool shelf of a community workshop. Tools and members in maps, loans with due days, refusals as an exception class of your own, the whole shelf saved to and loaded from a CSV file, and a text UI over it all.
- The Game of Life (After module 47: Two-dimensional arrays): A grid of cells that live and die by four simple rules. Count each cell's neighbors, work out the next generation, let the board wrap around at its edges, read patterns from a file, and watch a glider travel, one printed generation after another.
- A calculator (After module 58: Pattern matching and sealed types): A calculator you type into, line by line. Split the text into tokens, build a tree of records that knows times comes before plus, add parentheses, minus signs and variables, and answer bad input with a message that says what's wrong and where.