How can I read the input line in Inform 7?

I just want to invite the user a line of text in the middle of the action. The effect should be like this:

> north The robot steps in front of you as you approach the gate. "PAASSWAAAAWRD!!" it bellows. Enter the password: _ 

At this point, the game should pause and allow the player to try to guess the password. For example, suppose I think "fribble", which is not a password:

 Enter the password: fribble "WRONG PASSWAAARD!" roars the robot. "CHECK CAPS LAAAWWWWK!" > 

The behavior I want is similar to if the player consents , but I need the entire input line, not just yes or no.

+8
inform7
source share
2 answers

Inform offers an easy way to do this, although you could access keyboard primitives by dropping to Inform 6.

However, you can achieve the desired effect:

 The Loading Zone is a room. "Concrete with yellow stripes. The Hold is north." The robot is an animal in the Loading Zone. "However, a robot the size of an Arcturan megaladon guards the way." North of the Loading Zone is the Hold. Instead of going north from the Loading Zone: say "The robot steps in front of you as you approach the gate. 'PAASSWAAAAWRD!!' it bellows."; now the command prompt is "Enter password: ". After reading a command when the command prompt is "Enter password: ": if the player command matches "xyzzy": say "The robot folds itself up into a cube to let you pass."; move the player to the Hold; otherwise: say "'WRONG PASSWAAARD!' roars the robot. 'CHECK CAPS LAAAWWWWK!'"; now the command prompt is ">"; reject the player command. 

I think that this kind of thing is considered bad gameplay: it makes the player guess, which harms the player the illusion of control and choice. A more traditional way would be to require the player to say a password:

 The Loading Zone is a room. "Concrete with yellow stripes. The Hold is north." The robot is an animal in the Loading Zone. The robot is either awake or asleep. The robot is awake. "[if awake]However, a robot the size of an Arcturan megaladon guards the way.[otherwise]A cube of metal the size of an Arctural megaladon snores loudly.[end if]". North of the Loading Zone is the Hold. Instead of going north from the Loading Zone when the robot is awake: say "The robot steps in front of you as you approach the gate. 'PAASSWAAAAWRD!!' it bellows." Instead of answering the robot that some text: if the topic understood matches "xyzzy": say "The robot folds itself up into a cube to let you pass."; now the robot is asleep; otherwise: say "'WRONG PASSWAAARD!' roars the robot. 'CHECK CAPS LAAAWWWWK!'" 

The commands say xyzzy and answer xyzzy and the robot, xyzzy both say that xyzzy for the robot will work.

+11
source share

Michael Callaghan extension questions will help with this. Please note that you may not be able to reliably check input sensitively.

+3
source share

All Articles