Skip to content

anthay/advent.cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

advent.cpp

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

A map of Colossal Cave

I made a map of the cave to help me test it. Obviously, it contains spoilers. (I used Flowchart Designer 3 by Guangjian Zhang.)


To build and run Adventure

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

About

Will Crowther's Colossal Cave in C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages