1 .\" Copyright (c) 1990 The Regents of the University of California.
2 .\" All rights reserved.
4 .\" This code is derived from software contributed to Berkeley by
7 .\" Redistribution and use in source and binary forms, with or without
8 .\" modification, are permitted provided that the following conditions
10 .\" 1. Redistributions of source code must retain the above copyright
11 .\" notice, this list of conditions and the following disclaimer.
12 .\" 2. Redistributions in binary form must reproduce the above copyright
13 .\" notice, this list of conditions and the following disclaimer in the
14 .\" documentation and/or other materials provided with the distribution.
15 .\" 3. All advertising materials mentioning features or use of this software
16 .\" must display the following acknowledgement:
17 .\" This product includes software developed by the University of
18 .\" California, Berkeley and its contributors.
19 .\" 4. Neither the name of the University nor the names of its contributors
20 .\" may be used to endorse or promote products derived from this software
21 .\" without specific prior written permission.
23 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35 .\" from: @(#)atc.6 5.4 (Berkeley) 6/23/90
36 .\" $Id: atc.6,v 1.2 1993/08/01 07:47:39 mycroft Exp $
38 . \" XP - exdented paragraph
41 .if \\n(1T .sp \\n(PDu
47 .\" Copyright (c) 1986 Ed James. All rights reserved.
49 .TH ATC 6 "June 23, 1990"
52 atc \- Air Traffic Controller Game
55 -[u?lstp] [-[gf] game_name] [-r random seed]
59 lets you try your hand at the nerve wracking duties of the air traffic
60 controller without endangering the lives of millions of
62 Your responsibilities require you to direct the flight of jets
63 and prop planes into and out of the flight arena and airports.
64 The speed (update time) and frequency of the planes depend on the
65 difficulty of the chosen arena.
70 Print the usage line and exit.
77 Print a list of available games and exit.
78 The first game name printed is the default game.
81 Print the score list (formerly the Top Ten list).
88 Print the path to the special directory where
90 expects to find its private files. This is used during the
91 installation of the program.
94 Play the named game. If the game listed is not one of the
97 option, the default game is played.
104 Set the random seed. The purpose of this flag is questionable.
109 is to keep the game going as long as possible.
110 There is no winning state, except to beat the times of other players.
111 You will need to: launch planes at airports (by instructing them to
112 increase their altitude); land planes at airports (by instructing them to
113 go to altitude zero when exactly over the airport); and maneuver planes
116 Several things will cause the end of the game.
117 Each plane has a destination (see information area), and
118 sending a plane to the wrong destination is an error.
119 Planes can run out of fuel, or can collide. Collision is defined as
120 adjacency in any of the three dimensions. A plane leaving the arena
121 in any other way than through its destination exit is an error as well.
123 Scores are sorted in order of the number of planes safe. The other
124 statistics are provided merely for fun. There is no penalty for
125 taking longer than another player (except in the case of ties).
127 Suspending a game is not permitted. If you get a talk message, tough.
128 When was the last time an Air Traffic Controller got called away to
132 Depending on the terminal you run
134 on, the screen will be divided into 4 areas.
135 It should be stressed that the terminal driver portion of the
136 game was designed to be reconfigurable, so the display format can vary
137 depending the version you are playing. The descriptions here are based
139 of the game. The game rules and input format, however,
140 should remain consistent.
141 Control-L redraws the screen, should it become muddled.
144 The first screen area is the radar display, showing the relative locations
145 of the planes, airports, standard entry/exit points, radar
146 beacons, and "lines" which simply serve to aid you in guiding
149 Planes are shown as a single letter with an altitude. If
150 the numerical altitude is a single digit, then it represents
152 Some distinction is made between the prop
153 planes and the jets. On ascii terminals, prop planes are
154 represented by a upper case letter, jets by a lower case letter.
156 Airports are shown as a number and some indication of the direction
157 planes must be going to land at the airport.
158 On ascii terminals, this is one of '^', '>', '<', and 'v', to indicate
159 north (0 degrees), east (90), west (270) and south (180), respectively.
161 take off in this direction.
163 Beacons are represented as circles or asterisks and a number.
164 Their purpose is to offer a place of easy reference to the plane pilots.
165 See 'the delay command' under the input section of this manual.
167 Entry/exit points are displayed as numbers along the border of the
168 radar screen. Planes will enter the arena from these points without
169 warning. These points have a direction associated with them, and
170 planes will always enter the arena from this direction. On the
173 this direction is not displayed. It will become apparent
174 what this direction is as the game progresses.
176 Incoming planes will always enter at the same altitude: 7000 feet.
177 For a plane to successfully depart through an entry/exit point,
178 it must be flying at 9000 feet.
179 It is not necessary for the planes to be flying in any particular
180 direction when they leave the arena (yet).
181 .SS "INFORMATION AREA"
183 The second area of the display is the information area, which lists
184 the time (number of updates since start), and the number of planes you
185 have directed safely out of the arena.
186 Below this is a list of planes currently in the air, followed by a
187 blank line, and then a list of planes on the ground (at airports).
188 Each line lists the plane name and its current altitude,
189 an optional asterisk indicating low fuel, the plane's destination,
190 and the plane's current command. Changing altitude is not considered
191 to be a command and is therefore not displayed. The following are
192 some possible information lines:
198 The first example shows a prop plane named 'B' that is flying at 4000
199 feet. It is low on fuel (note the '*'). It's destination is
201 The next command it expects
202 to do is circle when it reaches Beacon #1.
203 The second example shows a jet named 'g' at 7000 feet, destined for
204 Exit #4. It is just now executing a turn to 225 degrees (South-West).
207 The third area of the display is the input area. It is here that
208 your input is reflected. See the INPUT heading of this manual
212 This area is used simply to give credit where credit is due. :-)
215 A command completion interface is built into
216 the game. At any time, typing '?' will list possible input characters.
217 Typing a backspace (your erase character) backs up, erasing the last part
218 of the command. When a command is complete, a return enters it, and
219 any semantic checking is done at that time. If no errors are detected,
220 the command is sent to the appropriate plane. If an error is discovered
221 during the check, the offending statement will be underscored and a
222 (hopefully) descriptive message will be printed under it.
224 The command syntax is broken into two parts:
230 commands happen on the next
233 commands also happen on the next update unless they
234 are followed by an optional predicate called the
238 In the following tables, the syntax
240 means any single digit, and
242 refers to the keys around the 's' key, namely ``wedcxzaq''.
243 In absolute references, 'q' refers to North-West or 315 degrees, and 'w'
244 refers to North, or 0 degrees.
245 In relative references, 'q' refers to -45 degrees or 45 degrees left, and 'w'
246 refers to 0 degrees, or no change in direction.
248 All commands start with a plane letter. This indicates the recipient
249 of the command. Case is ignored.
250 .SS "IMMEDIATE ONLY COMMANDS"
254 Affect a plane's altitude (and take off).
257 .B "\- [0\-9] Number:"
259 Go to the given altitude (thousands of feet).
263 Relative altitude change.
266 .B "\- [0\-9] Number:"
268 Difference in thousands of feet.
271 .B "\- d/\- Descend:"
273 Relative altitude change.
276 .B "\- [0\-9] Number:"
278 Difference in thousands of feet.
284 Display in highlighted mode. Command is displayed normally.
288 Do not display highlighted. Command is displayed as a
289 line of dashes if there is no command.
293 Same as ignore, but if a delayed command is processed,
294 the plane will become marked. This is useful if you want
295 to forget about a plane during part, but not all, of its
299 .SS "DELAYABLE COMMANDS"
303 Have the plane circle (clockwise by default).
308 Circle counterclockwise.
322 Turn counterclockwise (45 degrees by default).
325 .B "\- <dir> Direction:"
327 Turn ccw the given number of degrees.
328 Zero degrees is no turn. A ccw turn
329 of -45 degrees is 45 cw.
334 Turn clockwise (45 degrees by default).
337 .B "\- <dir> Direction:"
339 Same as turn left <dir>.
344 Turn counterclockwise 90 degrees.
348 Turn clockwise 90 degrees.
350 .B "\- <dir> Direction:"
352 Turn to the absolute compass heading given.
353 The shortest turn will be taken.
357 Turn towards a beacon, airport or exit. The turn is
363 Turn towards the beacon.
366 .B "\- [0-9] Number:"
373 Turn towards the exit.
376 .B "\- [0-9] Number:"
383 Turn towards the airport.
386 .B "\- [0-9] Number:"
394 .SS THE DELAY COMMAND
399 command may be appended to any
401 command. It allows the controller to instruct a plane to do an action
402 when the plane reaches a particular beacon (or other objects in future
408 Do the given delayable command when the plane reaches the given beacon.
413 This is redundant to allow for expansion.
416 .B "\- [0-9] Number:"
423 .SS "MARKING, UNMARKING AND IGNORING"
427 when they enter the arena. This means they are displayed in highlighted
428 mode on the radar display. A plane may also be either
434 plane is drawn in unhighlighted mode, and a line of dashes is displayed in
435 the command field of the information area. The plane will remain this
436 way until a mark command has been issued. Any other command will be issued,
437 but the command line will return to a line of dashes when the command
442 plane is treated the same as an unmarked plane, except that it will
443 automatically switch to
445 status when a delayed command has been processed. This is useful if
446 you want to forget about a plane for a while, but its flight path has
447 not yet been completely set.
449 As with all of the commands, marking, unmarking and ignoring will take effect
450 at the beginning of the next update. Do not be surprised if the plane does
451 not immediately switch to unhighlighted mode.
456 a: turn left at beacon #1
462 g: turn towards exit #4 at beacon #2
465 m: altitude: climb 2000 feet
473 .SH "OTHER INFORMATION"
475 Jets move every update; prop planes move every other update.
477 All planes turn a most 90 degrees per movement.
479 Planes enter at 7000 feet and leave at 9000 feet.
481 Planes flying at an altitude of 0 crash if they are not over an airport.
483 Planes waiting at airports can only be told to take off (climb in altitude).
488 file lists the currently available play fields. New field description
489 file names must be placed in this file to be 'playable'. If a player
490 specifies a game not in this file, his score will not be logged.
492 The game field description files are broken into two parts. The first
493 part is the definition section. Here, the four tunable game parameters
494 must be set. These variables are set with the syntax:
498 Variable may be one of:
500 indicating the number of seconds between forced updates;
502 indicating (about) the number of updates between new plane entries;
504 indicating the width of the play field; and
506 indicating the height of the play field.
508 The second part of the field description files describes the locations
509 of the exits, the beacons, the airports and the lines.
510 The syntax is as follows:
514 airport: (x y direction) ... ;
516 exit: (x y direction) ... ;
518 line: [ (x1 y1) (x2 y2) ] ... ;
520 For beacons, a simple x, y coordinate pair is used (enclosed in parenthesis).
521 Airports and exits require a third value, a direction, which is one
524 For airports, this is the direction that planes must be going to take
525 off and land, and for exits, this is the direction that planes will going
528 the arena. This may not seem intuitive, but as there is no restriction on
529 direction of exit, this is appropriate.
530 Lines are slightly different, since they need two coordinate pairs to
531 specify the line endpoints. These endpoints must be enclosed in
534 All statements are semi-colon (;) terminated. Multiple item statements
535 accumulate. Each definition must occur exactly once, before any
536 item statements. Comments begin with a hash (#) symbol
537 and terminate with a newline.
538 The coordinates are between zero and width-1 and height-1
539 inclusive. All of the exit coordinates must lie on the borders, and
540 all of the beacons and airports must lie inside of the borders.
541 Line endpoints may be anywhere within the field, so long as
542 the lines are horizontal, vertical or
543 .B "exactly diagonal."
544 .SS "FIELD FILE EXAMPLE"
550 # This is the default game.
557 exit: ( 12 0 x ) ( 29 0 z ) ( 29 7 a ) ( 29 17 a )
558 ( 9 20 e ) ( 0 13 d ) ( 0 7 d ) ( 0 0 c ) ;
560 beacon: ( 12 7 ) ( 12 17 ) ;
562 airport: ( 20 15 w ) ( 20 18 d ) ;
564 line: [ ( 1 1 ) ( 6 6 ) ]
565 [ ( 12 1 ) ( 12 6 ) ]
566 [ ( 13 7 ) ( 28 7 ) ]
567 [ ( 28 1 ) ( 13 16 ) ]
568 [ ( 1 13 ) ( 11 13 ) ]
569 [ ( 12 8 ) ( 12 16 ) ]
570 [ ( 11 18 ) ( 10 19 ) ]
571 [ ( 13 17 ) ( 28 17 ) ]
572 [ ( 1 7 ) ( 11 7 ) ] ;
577 Files are kept in a special directory. See the OPTIONS for a way to
581 Where the scores are kept.
584 The list of playable games.
587 Ed James, UC Berkeley: edjames@ucbvax.berkeley.edu, ucbvax!edjames
589 This game is based on someone's description of the overall flavor
590 of a game written for some unknown PC many years ago, maybe.
593 The screen sometimes refreshes after you have quit.
595 Yet Another Curses Bug was discovered during the development of this game.
596 If your curses library clrtobot.o is version 5.1 or earlier,
597 you will have erase problems with the backspace operator in the input