rocks
An experimental terminal-based game about rocks
File Structure and Entry Point
| rocks.py ; the entry point, runs curses and manages explore/graphics
| explore.py ; provides Explore, a class which manages saving, loading, movement, some graphics, inventory, and rock positioning
| inv.py ;one line: "quantity = 0". This sections off the inventory into inv.quantity for explore and could permit more extension in the future
| isrock.py ; makes use of sorter.py and manages all items as rocks (including portals to prevent intersection --- however, "type of rock" is noted)
| isportal.py ; also makes use of sorter.py. manages all portals' saving, movement, and interlinking
| sorter.py ; creates a new, efficient data type that automatically insorts coordinates with bisection and allows indexing, removal, etc.
| README.md ; you're reading it right now
| worlds ; a directory which holds all files created by save data
Necessary Tools
Python3.7.2 was used to develop this app, and to run it, curses
, hashlib
, and math
must be available.
Controls
rocks.py
runs as a full window terminal application with a few controls, namely:
- q
: quits the program and returns to normal terminal mode
- s
: saves at a requested file location in worlds
- l
: loads from a file in worlds (if not available, does nothing)
- arrow keys: moves cursor around world and through portals
- .
picks up rocks
- /
puts down rocks in your inventory
- \
puts down portals (cost 10 rocks)