Will Crowther created Colossal Cave Adventure in 1976 in FORTRAN IV on a PDP-10. This is a faithful recreation in C++. Here are his code and data files.
Here is an example play...
-----------------------------------------------------------------
Will Crowther's original 1976 "Colossal Cave Adventure"
A faithful reimplementation in C++
by Anthony Hay, 2024 (CC0 1.0) Public Domain
https://github.com/anthay/advent.cpp
-----------------------------------------------------------------
To quit hit Ctrl-C
PAUSE: INIT DONE
TO RESUME EXECUTION, TYPE: G
TO TERMINATE THE PROGRAM, TYPE: X
g
EXECUTION RESUMED
WELCOME TO ADVENTURE!! WOULD YOU LIKE INSTRUCTIONS? yes
SOMEWHERE NEARBY IS COLOSSAL CAVE, WHERE OTHERS HAVE FOUND FORTUNES IN TREASURE AND GOLD, THOUGH IT IS RUMORED THAT SOME WHO ENTER ARE NEVER SEEN AGAIN. MAGIC IS SAID
TO WORK IN THE CAVE. I WILL BE YOUR EYES AND HANDS. DIRECT ME WITH COMMANDS OF 1 OR 2 WORDS. (ERRORS, SUGGESTIONS, COMPLAINTS TO CROWTHER)
(IF STUCK TYPE HELP FOR SOME HINTS)
YOU ARE STANDING AT THE END OF A ROAD BEFORE A SMALL BRICK BUILDING . AROUND YOU IS A FOREST. A SMALL STREAM FLOWS OUT OF THE BUILDING AND DOWN A GULLY.
enter building
YOU ARE INSIDE A BUILDING, A WELL HOUSE FOR A LARGE SPRING. THERE ARE SOME KEYS ON THE GROUND HERE. THERE IS A SHINY BRASS LAMP NEARBY.
THERE IS FOOD HERE. THERE IS A BOTTLE OF WATER HERE. take keys
OK leave building
YOU'RE AT END OF ROAD AGAIN. follow stream
YOU ARE IN A VALLEY IN THE FOREST BESIDE A STREAM TUMBLING ALONG A ROCKY BED. south
AT YOUR FEET ALL THE WATER OF THE STREAM SPLASHES INTO A 2 INCH SLIT IN THE ROCK. DOWNSTREAM THE STREAMBED IS BARE ROCK. south
YOU ARE IN A 20 FOOT DEPRESSION FLOORED WITH BARE DIRT. SET INTO THE DIRT IS A STRONG STEEL GRATE MOUNTED IN CONCRETE. A DRY STREAMBED LEADS INTO THE DEPRESSION. THE GRATE IS LOCKED unlock grate
THE GRATE IS NOW UNLOCKED. go down
YOU ARE IN A SMALL CHAMBER BENEATH A 3X3 STEEL GRATE TO THE SURFACE. A LOW CRAWL OVER COBBLES LEADS INWARD TO THE WEST. THE GRATE IS OPEN. crawl in
YOU ARE CRAWLING OVER COBBLES IN A LOW PASSAGE. THERE IS A DIM LIGHT AT THE EAST END OF THE PASSAGE. THERE IS A SMALL WICKER CAGE DISCARDED NEARBY. go west
YOU ARE IN A DEBRIS ROOM, FILLED WITH STUFF WASHED IN FROM THE SURFACE. A LOW WIDE PASSAGE WITH COBBLES BECOMES PLUGGED WITH MUD AND DEBRIS HERE,BUT AN AWKWARD CANYON LEADS UPWARD AND WEST. A NOTE ON THE WALL SAYS 'MAGIC WORD XYZZY'. IT IS NOW PITCH BLACK. IF YOU PROCEED YOU WILL LIKELY FALL INTO A PIT. A THREE FOOT BLACK ROD WITH A RUSTY STAR ON AN END LIES NEARBY take rod
OK go back
YOU FELL INTO A PIT AND BROKE EVERY BONE IN YOUR BODY! PAUSE: GAME IS OVER
TO RESUME EXECUTION, TYPE: G
TO TERMINATE THE PROGRAM, TYPE: X
I made a map of the cave to help me test it. Obviously, it contains spoilers. (I used Flowchart Designer 3 by Guangjian Zhang.)
Note that the whole of Adventure is in the one file advf4_77-03-31.cpp.
POSIX (e.g. macOS) (I used Apple clang version 15.0.0 that came with Xcode):
clang++ -std=c++20 -pedantic -o advent advf4_77-03-31.cpp
./advent
Windows (I used Microsoft Visual Studio 2019 Community Edition Command Prompt):
cl /EHsc /W4 /std:c++20 /Fe:advent advf4_77-03-31.cpp
advent