aboutsummaryrefslogtreecommitdiff

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)