Desks/iPads from Ender's Game

Hello.

I’m new here, this is in fact my first post.

I am making my first real IF, but I got stuck at a part fairly early on.

If any of you are familiar with the book “Ender’s Game”, you should know what I am talking about.

Ender, and the students at Battle School have iPad like objects, called “Desks”. I need help making one.

What I want is simple, and has been done before, but not with a “computer” that doesn’t close (like a laptop) and isn’t stationary, and also doesn’t have any extensions.

I need to simply make a login screen on the iPad-like Desk, and after logging in, there are multiple areas where to go, such as “Assignments” and “Messages”.

Ender (the player) must also be able to “hack”, which is just made possible by learning about keywords to type into the Desk, that allow access to “hidden” menus.

I tried to be as descriptive as possible, but if you need more information, simply post. I really help, so thank you in advance.

What system are you writing this program in?

I’m not quite clear on what effect you want… perhaps you could post a sample transcript? Writing the game’s ideal output, and THEN programming it, is a technique some authors use.

Alright, so here is the source for a laptop. Of course, the source for the computer is already in there, so Inform already understands what a computer is.

I just want to make it so that instead of opening, the “laptop” (which is really a desk) just turns on, and it also can’t have extension ports and the like. Please help, as I am new at this.

Please read the first post to be sure what I want/need. I don’t mean to be a nag, but this is crucial in the game I’m building.

[code]A laptop is a kind of computer. A laptop can be open or closed. A laptop can be openable. A laptop is usually closed and openable. Understand “computer” or “computers” as a laptop.

A trackpad is a kind of selection device. A trackpad is part of every laptop.

Instead of touching a trackpad (this is the correct insufficient trackpad information rule):
say “Try CLICK ON (some option) WITH [the noun], or just CLICK ON (option), to make a selection.”

Definition: a thing is a concealed component:
if it is a keyboard and it is part of a closed laptop:
yes;
if it is a screen and it is part of closed laptop:
yes;
if it is a trackpad and it is part of closed laptop:
yes;
no.

Instead of doing something when the noun is a concealed component (this is the inability to act on parts of a closed laptop rule):
let N be the holder of the noun;
say “[The N] [is-are] closed at the moment.”

Instead of doing something when the second noun is a concealed component (this is the inability to act on secondary parts of a closed laptop rule):
let N be the holder of the second noun;
say “[The N] [is-are] closed at the moment.”

Before switching on a closed laptop (this is the laptops run open rule):
say “(opening and starting up [the noun])[command clarification break]”;
silently try opening the noun;
if the noun is closed:
stop the action.

Before switching off an open laptop (this is the laptops store closed rule):
say “(closing and shutting down [the noun])[command clarification break]”;
silently try closing the noun;
if the noun is open:
stop the action.

[And because we want to keep the closing and opening in sync with one another:]

Understand “close [laptop]” as switching off.
Understand “open [laptop]” as switching on.[/code]

I don’t really want a track pad, just the ability to “select” things, as if you are touching them.

Sorry to ask so much.

You may want to create an action applying to a topic. See the Documentation CH. 16.5 on the text token.
It will look something like this:

Clicking is an action applying to one topic. Check clicking: say "There is no such option to click." Understand "click [text]", "click the [text]", "click on [text]", or "click on the [text]" as clicking. Instead of clicking "trash can": say "You open the trash can."
Or just make the options parts of the pad and use an ordinary action applying to a thing for clicking them.

For Ender’s hacking, at least, I suppose, an action applying to a topic might be appropriate.

Alright, I’ll try it out.

Rather than start a new topic, I suppose that I’ll just ask it here.

How do you name the player?

I tried;

Understand "Ender" as the player.

But it just gives me the error;

[code]Problem. You wrote ‘Understand “Ender” as the player’ : but ‘understand … as …’ should be followed by a meaning, which might be an action (e.g., ‘understand “take [something]” as taking’), a thing (‘understand “stove” as the oven’) or more generally a value (‘understand “huitante” as 80’), or a named token for use in further grammar (‘understand “near [something]” as “[location phrase]”’). Also, the meaning needs to be precise, so ‘understand “x” as a number’ is not allowed - it does not say which number.

[/code]

I just want the player to be able to say something like

Please and thanks.

You could say

Understand "Ender" as yourself.

but you might instead want

Ender is a man in [whatever the opening location is]. The player is Ender.

Thank you. That worked perfectly.

One more, how do I get rid of the number of moves made counter thing?

See section 8.3 on changing the status line.