New Scott Adams format interpreter "PerlScott"

I’m happy to report that I played “Ghost King” all the way through in PerlScott yesterday. I found one minor bug and have a couple of suggestions.

First the minor bug. The game uses “GET” in an unsual way (not picking anything up but doing other things instead). As it is now I do the right tings but get an “You can’t see that here!”. I think the check on line 1296 to before the call to the subroutine “handle_carry_and_drop_verb”. If I try it it behaves as excepted.

And some suggestions:

  1. You might consider implementing the on letter abbreviations for directions, inventory and look. It probably wasn’t in the 4.6 release but it’s quite tedious to type “GO” before efery direction. I tried the following code on line 624-
	if ( length( $keyboard_input_2 ) == 1 ) {
		if ( lc( $keyboard_input_2 ) eq "n" ) { $keyboard_input_2 = "go north" };
		if ( lc( $keyboard_input_2 ) eq "s" ) { $keyboard_input_2 = "go south" };
		if ( lc( $keyboard_input_2 ) eq "e" ) { $keyboard_input_2 = "go east" };
		if ( lc( $keyboard_input_2 ) eq "w" ) { $keyboard_input_2 = "go west" };
		if ( lc( $keyboard_input_2 ) eq "u" ) { $keyboard_input_2 = "go up" };
		if ( lc( $keyboard_input_2 ) eq "d" ) { $keyboard_input_2 = "go down" };
		if ( lc( $keyboard_input_2 ) eq "o" ) { $keyboard_input_2 = "go out" };
		if ( lc( $keyboard_input_2 ) eq "i" ) { $keyboard_input_2 = "inventory" };
		if ( lc( $keyboard_input_2 ) eq "l" ) { $keyboard_input_2 = "look" };
	};

There probably is a more elegant way to do this in perl (regexp?) but this worked.

  1. Looking at the original TRS-80 screenshots (www.filfre.net/2011/06/adventureland-part-1/) with it’s 64 characters screen it think the startmessage should look something like this:
                 *** Welcome ***

 Unless told differently you must find *TREASURES* 
and-return-them-to-their-proper--place!

I'm your puppet. Give me english commands that
consist of a noun and verb. Some examples...

To find out what you're carrying you might say: TAKE INVENTORY 
to go into a hole you might say: GO HOLE 
to save current game: SAVE GAME

You will at times need special items to do things: But I'm 
sure you'll be a good adventurer and figure these things out.

     Happy adventuring... Hit enter to start
  1. Change the prompt to "Tell me what to do? " with a question mark and no CR (TRS-80 look & feel).

That’s it (for now)!

(I’m not comfortable enough with Perl yet to mess with the GitHub-project so I let you do the changes that you feel is relevant. But I will create issues for this.)

That’s great!

Thanks for the GitHub issues. I’ll have to meditate on the GET behavior a bit.

My comments on the suggestions:

  1. Compass direction abbreviations are a good addition. In my next interpreter I’m going to structure this in a more flexible way that permits localizations in the games (so that you can play translated Scott Adams games in Swedish or whatever). Your solution works well for what I want PerlScott to accomplish though.
  2. Agreed.
  3. This is a duplicate of Issue #6, which has been sitting unhandled for too long :roll_eyes: