ATC(6)

명칭
atc - 공항 관제관 게임

서식
atc -[u? lstp] [-[gf] game_name] [-r random seed]

해설

atc (은)는 1 년 쯤몇백만명이라고 하는 여행자의 생명을 위험에 처하는 일 없이 비행기의 교통을 제어한다고 하는 신경을 피로하게 하는 임무에 있어서의 기량을 시험합니다. 책임자인 당신은 관제 공역과 활주로중이나 밖에 제트기나 프로펠러기를 지시해 날리지 않으면 안됩니다. 비행기의 스피드 (화면 갱신의 간격)와 등장 빈도는 선택한 공역의 어려움에 의해 정해집니다.

옵션

-u  사용 방법을 표시해 종료합니다.

-?  -u (와)과 같습니다.

-l  사용 가능한 게임의 리스트를 표시해 종료합니다. 최초로 표시되는 게임의 이름은 default 게임입니다.

-s  득점 리스트를 표시합니다 (이전에는 상위 10 명의 리스트였습니다).

-t  -s (와)과 같습니다.

-p  atc (은)는, 자신만큼이 사용하는 파일이 있다고 생각하고 있는 전용의 디렉토리 의 패스를 표시합니다. 이 패스는 프로그램을 재인스톨 할 때까지 계속 사용됩니다.

-g game
    지정된 게임을 실행합니다. 이름을 든 게임이 -l 옵션으로 표시되는 것의 중에 없는 경우에는, default 게임이 실행됩니다.

-f game
    -g (와)과 같습니다.

-r seed
    난수의 배정을 설정합니다. 이 플래그를 이용하는 것은 어떠한 것일까하고 생각합니다.

골

atc 에 있어서의 당신의 골은 가능한 한 게임을 길게 계속하는 것입니다. 다른 플레이어의 시간을 찢는 것 이외로는, 승리 상태는 없습니다. 당신이 해야 하는 것은, 활주로로부터 비행기를 (고도를 올리도록(듯이) 지시하는 것에 의해) 이륙시키는 것, 활주로에 비행기를 (활주로의 정확히 바로 위에서 고도가 0 이 되도록(듯이) 지시하는 것에 의해) 착륙시키는 것, 그리고 출구 (exit point) 의 밖에 비행기를 내보내는 것입니다.

여러가지가 게임의 마지막을 일으킵니다. 각각의 비행기는 목적지 ( 「정보 area」참조)를 가지고 있어 비행기를 다른 목적지에 보내면(자) 에러가 됩니다. 비행기는 연료 부족이 되는 일도 있을 수 있고, 충돌하는 일도 있을 수 있습니다. 충돌은, 3 차원의 어떤 것인가의 방향으로 서로 이웃이 되었을 경우이다고 정의되고 있습니다. 목적지 이외의 출구로부터 비행기가 공역을 떨어지는 것도 똑같이 에러입니다.

득점은 무사했던 비행기의 수의 차례로 늘어놓을 수 있습니다. 그 외의 통계는 단지 즐거움의 위해(때문에) 제공되고 있을 뿐입니다. 다른 플레이어보다 시간을 들였던 것에 대하는 패널티는 (동점의 경우를 제외해) 없습니다.

게임의 중단은 용서되지 않습니다. talk 메세지를 받았다고 해도, 입니다. 공항 관제관이 전화에 불려 가다니 그런 일이 언제 있었던 가요?

표시

당신이 atc (을)를 달리게 하고 있는 단말에 의존합니다만, 화면은 4 개의 부분에 분할됩니다. 게임의 단말 드라이버의 부분은 변경 가능한 것 같게 설계되고 있으므로, 당신이 놀고 있는 판에 따라서는 표시 형식에 차이가 있을지도 모르는 것을 강조해 두는 편이 좋을 것입니다. 이 메뉴얼의 기술은 ASCII 판의 게임에 근거하고 있습니다. 그렇지만, 게임의 룰이나 입력 형식에는 변경은 없을 것입니다. Control-L 는 혼란하고 있을지도 모르는 화면을 다시 그립니다.

  레이다

    1 번째의 부분은 레이다 화면에서, 비행기의 상대 위치나 활주로, 표준의 출입구, 레이다비콘, 당신이 비행기를 유도하기 위한 단순한 기준에 지나지 않는 「선」이 표시되고 있습니다.

    비행기는 영문자 1 캐릭터와 고도여 나타내집니다. 고도의 숫자가 1 자리수의 숫자이면, 그것은 수천 피트를 나타내고 있습니다. 프로펠러기와 제트기와의 사이에는 다소의 구별이 이루어집니다. ASCII 단말에서는, 프로펠러기는 대문자로, 제트기는 소문자로 나타내집니다.

    활주로는 숫자와 비행기가 활주로에 착륙할 때에 침입해야 하는 방향을 나타낸다 표로 나타내집니다. ASCII 단말에서는, 이 표는, '^', '>', '<', 'v'의 어떤 것이나 1 개로, 각각 키타 (0 번), 아즈마 (90), 니시 (270), 미나미 (180)를 나타내고 있습니다. 비행기는 이 방향으로 이륙도 합니다.

    신호는 환 또는 asterisk와 숫자로 나타내집니다. 이러한 목적은 비행기의 파일럿이 간단하게 장소를 참조할 수 있도록(듯이) 하는 것입니다. 이 메뉴얼의 「입력」의 항에 있는 「delay 명령」를 참조해 주세요.

    입/출구는 레이다 화면의 테두리 위에 숫자로서 표시됩니다. 비행기는 이러한 지점으로부터 예고없이 들어 옵니다. 이러한 지점은 그것들로부터 연상될 방향을 가지고 있어 비행기는 항상 그 방향으로부터 area에 들어 옵니다. ASCII 판의 atc 그럼, 이 방향은 표시되지 않습니다. 게임이 진행되는 것에 따라 이 방향이 명백하게 됩니다.

    오는 비행기는 항상 같은 고도 7000 피트로 들어 옵니다. 비행기는 잘 입/출구를 지나 떠나 가려면 , 9000 피트로 날지 않으면 되지 않습니다. (현재로서는) 비행기가 area로부터 날아가 버릴 때에는, 어느 방향에 날아 가도 상관하지 않습니다.

  정보 area

    2 번째의 표시 area는 정보 area로, 시간 (개시부터의 갱신 회수)과 area의 밖으로부터 무사하게 유도한 비행기의 수가 표시되고 있습니다. 그 아래에 있는 것은 지금 비행중의 비행기의 리스트와 1 행 열어, 지면 (활주로)에 있는 비행기의 리스트입니다. 각각의 행은 비행기의 이름과 현재의 고도, asterisk가 붙어 있는 경우 연료가 적은 것을, 비행기의 목적지, 그리고 비행기의 현재의 명령이 쓰여져 있습니다. 고도의 변경은 명령라고는 보이지 않기 위해(때문에) 표시되지 않습니다. 이하에 나타내는 것은 정보 표시행이 있을 수 있는 예입니다:

        B4*A0: Circle @ b1
        g7 E4: 225

    1 번째의 예는 4000 피트를 비행중의 'B'라고 명명된 프로펠러기를 나타내고 있습니다. 이 비행기는 연료가 부족합니다 ('*'에 주목). 이 비행기의 목적지는 0 번 활주로입니다. 다음의 명령은 1 번 신호에 도착하면(자) 선회하는 것을 요구하고 있습니다. 2 번째의 예는, 4 번 출구를 목표로 하는, 고도 7000 피트로 'g'라고 하는 이름의 제트기입니다. 이 비행기는 정확히 지금 225 번 방향 (남서)에 회전을 실행해 있는 곳(중)입니다.

  입력 area

    3 번째의 표시 area는 입력 area입니다. 당신의 입력은, 여기에 표시됩니다. 자세하게는 이 메뉴얼의 「입력」의 항을 참조해 주세요.

  저자 area

    이 area는, 칭찬에 적합한 것은 누군가를 나타내는 크레디트를 알리기 (위해)때문에인 만큼 사용되고 있습니다 :-).

입력

이 게임에는 명령 보완 인터페이스가 짜넣어지고 있습니다. 언제라도, '? '를 입력하면 가능한 입력 캐릭터가 표시됩니다. 백 스페이스 (당신이 사용하고 있는 소거 캐릭터)를 입력하기 전으로 돌아와, 명령의 마지막 부분을 지웁니다. 명령이 완성하면(자), 리턴을 누르면 입력됩니다. 의미상의 체크는 모두 이 때에 행해집니다. 만약 1 개(살)이나 에러가 발견되지 않았으면, 명령은 적절한 비행기에 보내집니다. 체크의 단계에서 에러가 발견되었을 경우, 잘못한 문장에 밑줄이 끌려(잘되면) 설명의 메세지가 그 아래에 표시됩니다.

명령 구문은 2 개의 부분으로 나눌 수 있습니다: 즉시만 (와)과 연기 가능 명령입니다. 즉시만 명령은 다음의 갱신으로 실시됩니다. 연기 가능 명령도 다음의 갱신으로 실시할 수가 있습니다만, 부가적인 Delay 명령로 불리는 술어가 뒤로 붙어 있는 경우는 예외입니다.

아래의 겉(표)에 대해, 구문 [0-9] 네차이인가의 1 개의 숫자를 의미해, <dir> (은)는 's'키의 주위의 키, 즉 ``wedcxzaq''에 들어맞읍니다. 절대 참조에 대해서는, 'q'는 북서 즉 315 번에 들어맞아, 'w'는 북쪽 즉 0 번에 들어맞읍니다. 상대 참조에 대해서는, 'q'는 -45 번 즉 「좌회전 45 번」에 들어맞아, 'w'는 0 번 즉 「방향으로 변경 없이 」들어맞읍니다.

모든 명령은 비행기를 나타내는 캐릭터로 시작됩니다. 이것은 명령의 수취손을 나타냅니다. 대문자 소문자는 무시됩니다.

  즉시만 명령
    - a Altitude:
        비행기의 고도 (와 이륙)에 작용합니다.
        - [0-9] Number:
            주어진 고도 (천 피트 단위)에 갑니다.
        - c/+ Climb:
            상대 고도를 변경 (상승)합니다.
            - [0-9] Number:
                천피트 단위에서의 고도차이입니다.
        - d/- Descend:
            상대 고도를 변경 (하강)합니다.
            - [0-9] Number:
                천피트 단위에서의 고도차이입니다.
    - m Mark:
        강조 모드로 표시합니다. 명령은 보통으로 표시됩니다.
    - i Ignore:
        강조 표시를 취소합니다. 만약 명령이 없을 때에는 커멘드는 데쉬의 선으로 표시됩니다.
    - u Unmark:
        ignore 와 같습니다만, 연기된 명령이 처리되면(자) 비행기는 마크 됩니다. 비행기의 행정의 모두가 아니게 일부의 사이 잊고 싶을 때에 편리합니다.

  연기 가능 명령
    - c Circle:
        비행기에 선회시킵니다.
    - t Turn:
        회전합니다.
        - l Left:
            반시계회전에 회전합니다 (디폴트에서는 45 번입니다).
            - <dir> Direction:
                반시계회전에게 줄 수 있었던 각도 회전합니다. 0 번은 회전 없음을 나타냅니다. -45 도 반시계회전 회전은 45 번 시계회전 회전입니다.
        - r Right:
            시계회전에게 줄 수 있었던 각도 회전합니다 (디폴트에서는 45 번입니다).
            - <dir> Direction:
                turn left <dir> 와 같습니다.
        - L Left 90:
            90 번반시계회전에 회전합니다.
        - R Right 90:
            90 번 시계회전에 회전합니다.
        - <dir> Direction:
            주어진 절대 나침반 방향에 회전합니다. 가장 가까운 회전이 선택됩니다.
        - t Towards:
            신호, 활주로 또는 출구로 향합니다. 회전은 추측만으로 행해집니다.
            - b/* Beacon:
                신호로 향해 회전합니다.
                - [0-9] Number:
                    신호의 번호를 지정합니다.
            - e Exit:
                출구로 향해 회전합니다.
                - [0-9] Number:
                    출구의 번호를 지정합니다.
            - a Airport:
                활주로로 향해 회전합니다.
                - [0-9] Number:
                    활주로의 번호를 지정합니다.

  연기 명령

연기 (a/@) 명령은 어느 연기 가능 명령에 대해서도 붙일 수가 있습니다. 연기 명령은 비행기가 특정의 신호에 도착했을 때 (장래의 버젼에서는 다른 물체에 도착했을 때도)에 행동을 일으키는 것 같은 지시를 관제관을 낼 수 있도록(듯이) 합니다.

    - a/@ At:
        주어진 신호에 비행기가 도착했을 때에게 줄 수 있었던 연기 가능한 명령을 실행합니다.
        - b/* Beacon:
            이것은 확장할 수 있도록(듯이)하기 위한 여분입니다.
            - [0-9] Number:
                신호의 번호

  마크, 마크 취소해, 그리고 무시

비행기는 공역에 들어가면(자) 마크 됩니다. 이것은 비행기는 레이다 화면에서는 강조 표시되는 것을 의미하고 있습니다. 비행기는 마크 소거 또는 무시된다 일도 있습니다. 마크 소거 된 비행기는 강조 없음 모드로 표시되어 데쉬의 행이 정보 area의 명령 필드에 표시됩니다. 비행기는 mark 명령이 발행될 때까지 이 상태로 계속 있습니다. 무엇인가 다른 명령이 발행되어도, 커멘드가 완료하면(자) 커멘드행은 데쉬의 행으로 돌아옵니다.

무시되었다 비행기는 연기 가능한 명령이 처리되었을 때에, 자동적으로 마크 된 상태로 전환할 수 있는 점을 제외해, 마크 소거된 비행기와 똑같이 다루어집니다. 이 기능은 아직 완전하게는 비행 도정이 설정 되어 있지 않은 비행기를, 조금의 사이 잊어 아플 때에 편리합니다.

명령, 마크 붙여 마크 소거, 그리고 무시의 모든 것은 다음의 갱신의 처음부터 효과가 나타납니다. 비행기가 곧바로 강조 없음 모드로 옮기지 않기 때문에라고 해 놀라지 말아 주세요.

  사용예

    atlab1
        a: turn left at beacon #1
        a 에: 신호 #1 로 왼쪽으로 선회해

    cc  C: circle
        C 에: 선회해

    gtte4ab2
        g: turn towards exit #4 at beacon #2
        g 에: 신호 #2 로 출구 #4 로 향해 회전해

    ma+2
        m: altitude: climb 2000 feet
        m에: 고도 변경: 2000 피트 상승해

    stq S: turn to 315
        S에: 315о방향에 선회해

    xi  x: ignore
        x에: 강조 표시를 그만두어라

그 외의 정보

제트기는 갱신의 번으로 이동해, 프로펠러기는 1 번 간격의 갱신마다 이동합니다.

모든 비행기는 1 회의 이동으로 최고 90 번 구부러질 수 있습니다.

비행기는 7000 피트로 들어 와, 9000 피트로 나갑니다.

활주로 위 이외의 장소에서 비행기가 고도 0 으로 날면(자) 추락합니다.

활주로 위에서 기다리고 있는 비행기가 생기는 것은 이륙 (고도를 올린다) 뿐입니다.

새로운 게임

Game_List 파일에는 현재 이용 가능한 경기장이 기록되고 있습니다. 경기장을 기술한 새롭다 파일을 「이용 가능」으로 하기 위해서(때문에)는, 이 파일에, 새로운 파일의 이름을 쓸 필요가 있습니다. 플레이어가 이 파일에 쓰여지지 않은 파일을 지정했을 경우, 그의 득점은 기록되지 않습니다.

경기장 기술 파일은 2 개의 부분으로 나눌 수 있습니다. 1 번째의 부분은 정의부입니다. 여기에서는, 4 개의 조절 가능한 게임·파라미터가 설정되지 않으면 안됩니다. 이러한 변수는 이하의 문법으로 설정됩니다:

    변수 = 수;

변수는 이하 중 1 개입니다: update, 강제 갱신의 간격의 초수를 지정합니다. newplane, 새로운 비행기가 들어 오는 간격의 (대체로의) 갱신 회수를 지정합니다. width, 경기장의 폭을 지정합니다. 그리고 height, 경기장의 높이를 지정합니다.

경기장 기술 파일의 2 번째의 부분은 출구나 신호, 활주로, 선의 장소를 기술합니다. 문법은 이하와 같습니다:

    beacon:    (x y) ... ;
    airport:    (x y 방향) ... ;
    exit:    (x y 방향) ... ;
    line:    [ (x1 y1) (x2 y2) ] ... ;

신호에 대해서는, (괄호로 묶어진) 단순한 x, y 좌표조가 이용됩니다. 활주로와 출구에는 3 번째의 값, 방향을 나타낸다 wedcxzaq
 중 1 개가 필요합니다. 활주로에 대해서는, 이것은 비행기가 이륙 또는 착륙해야 하는 방향으로, 출구에 대해서는, 이것은 비행기가 경기장에 들어간다 때의 방향입니다. 이것은 직관적은 아닌 것처럼 보일지도 모릅니다만, 출구의 방향에는 아무 제한도 없기 때문에, 이것으로 적절합니다. 선은 종단을 지정하는데 2 개의 좌표조를 필요로 하기 (위해)때문에, 조금 다릅니다. 이러한 종단은 꺽쇄묶음으로 둘러싸이지 않으면 안됩니다.

모든 문장은 세미콜론 (;)으로 끝납니다. 복수 항목문은 늘어놓고 씁니다. 각각의 정의는 어느 항목의 문장보다 전에, 1 번만 행해지지 않으면 안됩니다. 코멘트는 해시 (#) 기호보다 시작되어 개행으로 종료합니다. 좌표는 0 으로부터 시작되어, width-1 와 height-1 로 끝납니다. 출구의 모든 좌표는 화상에 둘 필요가 있어, 모든 신호와 활주로는 테두리보다 안쪽에 둔다 필요가 있습니다. 선의 종단은 경기장내의 어디에서라도 괜찮습니다가, 선이 옆인가 세로인가 정확히 기울기 (이)가 될 필요가 있습니다.

  경기장 파일예

    # 이것은 default 게임입니다.
    update = 5;
    newplane = 5;
    width = 30;
    height = 21;
    exit:		( 12  0 x ) ( 29  0 z ) ( 29  7 a ) ( 29 17 a )
    		(  9 20 e ) (  0 13 d ) (  0  7 d ) (  0  0 c ) ;
    beacon:		( 12  7 ) ( 12 17 ) ;
    airport:	( 20 15 w ) ( 20 18 d ) ;
    line:		[ (  1  1 ) (  6  6 ) ]
    		[ ( 12  1 ) ( 12  6 ) ]
    		[ ( 13  7 ) ( 28  7 ) ]
    		[ ( 28  1 ) ( 13 16 ) ]
    		[ (  1 13 ) ( 11 13 ) ]
    		[ ( 12  8 ) ( 12 16 ) ]
    		[ ( 11 18 ) ( 10 19 ) ]
    		[ ( 13 17 ) ( 28 17 ) ]
    		[ (  1  7 ) ( 11  7 ) ] ;

관련 파일

파일은 특별한 디렉토리에 보존되고 있습니다. 이 패스를 표시시키려면 「옵션」을 봐 주세요.

/var/games/atc_score	득점이 보관 유지됩니다.

/usr/share/games/atc/Game_List	이용 가능한 게임의 리스트입니다.

저자

Ed James, UC Berkeley: edjames@ucbvax.berkeley.edu, ucbvax! edjames

몇 년전에 무엇인가 낯선 PC 를 위해서(때문에) 쓰여진 게임에 대해 누군가가 기술한 전체적인 특색을, 이 게임은 바탕으로 하고 있습니다, 아마.

버그

당신이 그만두고 나서 화면이 다시 그리는 것이 가끔 있습니다.

이 게임을 개발하고 있는 동안에 한층 더 curses 의 버그가 발견되었습니다. 만약 당신의 curses 프로그램 라이브러리의 clrtobot.o 의 버젼이 5.1 또는 그 이전이면, 입력 윈도우에서의 후퇴 동작에 의한 소거에 문제가 있겠지요.