You can clone with
HTTPS or Subversion.
[crypt.pl] achievements can be locked, too
[crypt.pl] post-unlocking achievement logic
[crypt.pl] all disks on the right rod => win
This commit is a bit messy, because it got tangled up with a refactor
of 'from'/'to' rods into 'source'/'target' rods. The latter terminology
took over and wanted to be everywhere.
[crypt.pl] cannot move from a rod with no disks
[crypt.pl] can't use rod names which don't exist
[crypt.pl] larger disk on smaller not allowed
[crypt.pl] hanoi game, legal move
fearlessly removed last year's game
I tagged up the previous commit as `2011`, so you can still refer to the
removed files like this:
git show 2011:crypt.pl
git show 2011:descriptions
consistencified use of $!is_on vs $.is_on
Reported by shinobicl++.
open containers show contents when examined
(John Gabriele)++ for reporting.
implement 'use water'
(John Gabriele++) for reporting.
allow putting things *on* the fire as well
(John Gabriele)++ for reporting this.
disallow unary 'put'
don't show contents if there isn't any
don't need those :size ctor attrs
make 'walls' not show in Hall
TimToady++ for bug report. Also un-hid the helmet.
But some things in alphabetical order; divide the whole script into
better error for transitive verbs w/o object
player no longer allowed to take (heavy) disks
nicer inverse_index algorithm
put should be among the base verbs
It never was, because it was special-cased. Now it is.
supported 'put left disk on right rod' syntax
This led to the realization that it's probably a bad idea to have a
'middle disk', so renamed it to the 'medium disk'.
Also made inverse_lookup a globally defined sub, because it's so useful.
work around lack of /@array/ interpolation
Turns out Rakudo doesn't have this feature yet. Instead, we do the word
matching normally, and rely on backtracking to match first the two-word
and then the one-word verbs.
used the Direction subtype more
Also, it turns out that the enum-has-wrong-outer-scope bug makes it
necessary to repeat the list of direction strings verbatim in the
subtype declaration, or the subtype will match any Str.
allowed multi-word verbs
mentioned open/close in help
it looks nicer like this
Unnamed conditions are a kind of "magic numbers".
only tip floor back if exit exposed
handle double Ctrl+D
fix disconnect unconnected room bug
trim after checking for undef
trim user input before switch statement
"go car" now works
trigger help on /^help>>/, not "help"
And the ability to read things.