Chomp Game Help

This page explains the elements of the Chomp game used in "Control the Computer". There is a separate page for Chomp Commands. As you advance through the tutorial, more game programming skills will be explained, and this help window will describe the new features, so if you need help, you should always click the "Game Help" link from the page where the new feature you are trying to use is explained (or from a later page).

Choose a link from the index on the left, or click on an element in this image (same help, smaller image), to jump to the description of that element. Or just scroll down and read everything in order...

1.Game Board

Arrow Btns


12.Command Line
  All Commands
13.DoIt Btn

16.Save Btn

Logging In

Nibbler Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Pills Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls Walls LogIn Reload Save DoAll Reset Score Welcome Up Left Down Right DoIt Command Game Script

1. Game Board

This is where the game is played. It was inspired by the original PacMan game, but not an exact copy. When you click on an arrow button in the lower right corner, the nibbler will move in that direction, eating the pills at it goes, and adding up your score. The small pills are worth one point, and the larger pills are worth ten points.

If you click on the game board while a script is running, it will pause the script (and the nibbler) and turn the nibbler red. Click again to resume running.

2. Nibbler

This little fellow slides around the game board in the direction you point it using the arrow buttons, but to go long distances you must keep on clicking on the arrow buttons or use the command line. Use the Reset button to put the nibbler back where it started.

3. Pills

There are two sizes of pills, the smaller ones are one point each, and the larger pills, which are harder to get to, are worth ten points each. Each pill is "eaten" when the nibbler arrives on top of it. Use the Reset button to put the pills back.

4. Walls

The blue walls prevent the nibbler from going in certain directions. This layout was inspired by the original PacMan game, which is probably more interesting as a game, because it's much harder to program the computer to go eat every pill.

Arrow Btns

I think the original PacMan game had a joystick, but we mostly don't have joysticks on our computers, so these buttons will have to do. Depending on which button you click on, the nibbler will go one unit distance in that direction. To go long distances you must keep on clicking on the arrow buttons or use the command line. You can click as fast as you like (and the game will remember how many times you clicked), but the nibbler will only go at its own fixed speed. If you click on an arrow button when the nibbler is blocked by a wall in that direction, it won't go anywhere, but it will turn to face the wall and keep on chomping.

Most of the buttons in the game window have names that can be typed into the command line and added to the script. For more information, see the Chomp Commands page.

6. Up

The Up button moves the nibbler toward the top of the screen.

7. Left

The Left button moves the nibbler to the left, toward the listing and away from the score and the buttons.

8. Down

The Down button moves the nibbler down toward your keyboard and away from the top of the screen.

9. Right

The Right button moves the nibbler to the right, toward the score and the buttons and away from the listing.

10. Score

The score shows how many points you got from the nibbler eating pills since the last Reset. Clicking the refresh icon on your browser also resets the score. If you run the nibbler off the edge of the game board, or if you accumulate a total score greater than 999, then the score message changes to "Game Over!" and you must Reset the game before you can proceed.

11. Reset

Click on the reset button to restart the game from the beginning, with the nibbler and all the pills back in their original places and the score restarted at zero. Unused arrow button click-aheads will be discarded immediately. If you click on the Reset button and you have a Script running (from using the DoAll button) it will be terminated immediately, without finishing, but that does not happen when you use Reset in the script itself.

If you have a script in the listing panel, the first reset will leave it there, but clicking reset again will erase the script too. Use the Save and Reload buttons to save your script across reset clicks. Clicking the refresh icon on your browser also resets everything (including the listing) but not anything you have saved using the Save button.

If you have changed the maze, the second Reset click will also revert to the default.

If you have attempted a LogIn or asked for a Reload from the server and it is slow or unresponsive, the Reset button will cancel the request. If you are using line numbers to enter your script out of order, they will not be checked for a reasonable sequence (possibly resulting in a failure when you run the script using the DoAll button), but Reset resumes checking.

12. Command Line

This is where Real Programmers do their stuff! Type in a command for the computer (like the name of an arrow button), then click the DoIt button (or press the Enter key on your keyboard) and the computer will copy your command to the script listing, and if it makes sense (like an arrow button) it will also do it immediately.

Most of the buttons in the game window have names that can be typed into the command line and added to the script. For more information, see the Chomp Commands page. Eventually you will learn commands that can only be run in a script using the DoAll button in the right panel. Putting these commands in is called programming.

If you enter the command with a line number, the command will replace that numbered line of the script. If you type the command without a line number (or a number beyond the end of the script), it will be assigned the next number at the end of the script. If you use a fractional number (with a decimal point), then the line will be inserted between the two lines that your fractional number is between. If you want to make a minor change to an existing line, you can type in the line number and the single character '=' instead of a command, and that line from the script will replace the command line so that you can make the desired modifications before returning it to the script.

13. Do It Button

The DoIt button looks at whatever command you have typed into the command line, and if it knows how to do that, it copies it to the next line of the script. If you misspell a command, it might try to figure out what you meant and substitute that. If the command makes sense to do it immediately (like an arrow button), it does that too. While typing text into the command line, the "Enter" key on your keyboard has the same effect as clicking the DoIt button.

14. Script Listing

The script is where you can build a sequence of commands for the computer to do all at once -- well, actually in sequence -- with no further action on your part. You type each line of the script in using the command line and the DoIt button, then you click DoAll to run your script. Be sure to save your work, so if something goes wrong -- and it will! -- you can reload it and continue where you left off at the last save.

When you click the DoAll button, the script is executed in sequence, one line at a time. The line that is currently active (or possibly waiting to run) is hilighted in green.

Normally, as you type in commands, they get added to the script in the order you typed them. However, you can see the lines in the script are numbered. If you give a line number to the line you are typing, thne it replaces that (numbered) line in the script. To insert between two lines, give it a fractional line number -- like "2.5" to place it between lines 2 and 3. The lines will then be renumbered. You can delete a line by typing in just a line number and nothing else.

15. Do All

If you have a script in the listing panel, click the DoAll button to run the whole script from top to bottom.

16. Save

After you have spent the time to type in a large (or small) Script, you can save your work, then reload it at a later time. Whenever you save your script, it is stored in a "cookie" on your computer. Later on you can use the LogIn button to log into the server, then your saved script is also saved on the server under whatever name you used to log in. Be careful, the save button will save whatever is currently in your script, even if it is empty, and replace whatever you previously saved.

17. Reload

After you have saved a script, you can reload it back into the game and run it again, even if you erased your local copy using the reset button or if you turned your computer off and came back the next day. Reload always reloads the most recent saved copy.

18. Log In

(The LogIn button is disabled in the first pages, until after it has been explained in a later page.)

As you become more skillful programming scripts, you will want to save your work, then reload it later. We have a server which you can give a user name to and it will remember you and let you save your scripts on the server under that user name. Then later, or even on a different computer, you can log in and recover your saved script. This process all starts with the LogIn button, which is explained in a later page.

19. Welcome

Nothing shows in this part of the window unless you have successfully logged in. If you gave it a complete user name, it will welcome you with (only the letters at the front of) the name part of the user name. You can also log into another user's account in read-only mode to download (Reload) their script if they are willing to share it, and the Welcome panel will report you as a "Guest" of that person, but you will not be able to save your scripts to that account. See the discussion on "User Name" below for how this works.

Logging In

When you click on the LogIn button, the command line and DoIt button are hidden and replaced with the log-in information as you see here:


User Name

The first thing you need to do is to think about what user name to use. You can use any user name you like, but if you choose a name that resembles your real name, then if something goes badly wrong we will know it's your data and can fix the problem for you. We will not let somebody else pretend to be you to mess with your scripts, but for that to work, you need a verifiable name.

Most computer systems ask for a user name and a password, but this facility takes just a "name". I suggest you use your real name at the front and then some really hard to guess letters and numbers and stuff at the end, separated by the underscore '_' character (shift-hyphen on most keyboards).

For example, I might log in as "Tom_1234#". The game panel will display it as "Welcome Tom" so anybody looking over your shoulder will see only your name, but not enough to sneak in and mess with your data. If you try to log in as "Tom" the server will allow you to see my saved script as a "Guest" but the save button will be disabled so you cannot change it.

If I did not want you to see my script, I could create another account "Tom27_8765" and the server would see "Tom27" as a different user, but the game would only show the name "Tom" (no numerals or special characters) so anybody looking over my shoulder still cannot guess the full login name. The server is looking for whatever you chose as a name up to the underscore, for allowing guests, or disallowing others to use the same name.

For example, if you tried to log in as "Tom27_bleep" the server would see that it already has a "Tom27_..." and refuse it, but you still could log in a a guest of "Tom27" (if you knew the extra characters, which do not show). Is that confusing enough?

The point is that you will probably want to share your masterpiece script with your friends, so use a nice easy name like "Bill_..." or "DebbiSmith_..." but put something unique in place of those dots to protect your script from tampering. Then create another user name like "Bill76_..." or "Debbi$%_.." where you can store your private scripts.

Spaces and special characters outside the ASCII sequence (like letters with accents) will be removed from your user name.

New User

Click the New User checkbox to tell the server that you are choosing a new user name. Be sure it is checked off every time after that, when you are using the same user name, or if you want to look at a script as a guest of some other user.

(entry box)

Then type in your chosen user name in the box and click Log Me In.

Log Me In

When you click this button, the chosen user name is sent to the server, and it tells your computer if you are now logged in as the owner of that account, or a guest, or if you did not succeed at all (it puts up an alert). If you have an unsaved script, it will not be damaged by login failure. But you should try to save it locally if you can. When you have successfully logged into the server, it will show "Welcome" with your name.

Lost Password

Most of us cannot remember everything, so we all forget the passwords -- or at least the exact spelling of a name we invented last week. If you can remember the part of your user name before the underscore, you can always log in as a guest to recover the script, then create a new user name and save what you have there. If you used a reasonable approximation to your real name and you want to keep that same basic name, you can come ask me to fix it, and I can delete the old account, then you can re-establish it with your new password part. Or if you cannot even remember the part before the underscore, but I can verify it's you, I can extract the data for you. But let's try not to do this too often, OK?

Tom Pittman

Rev. 2020 March 5