      
-----------------------------------------------------------------

 
-----------

 
---------------

    ,      
    .

           
 ,  ,     .  
   :

* C++ (  gcc Version 3.3.5)
* Pascal (  Free Pascal Compiler 2.0)
* Modula-2 (  XDS Modula-2/Oberon-2 2.51)
* Java (   Java 1.5.0 )

     , ,   :

DJGPP, GCC
	 Windows: http://www.midpec.com/djgpp/zip-picker.html

Free Pascal Compiler:
	 Windows: http://sourceforge.net/project/showfiles.php?group_id=2174

 gcc  Free Pascal Compiler     
 Linux.

Modula-2:

	 Windows: 
	http://www.excelsior-usa.com/download/xds25x/xds-x86-251-enduser-win32.exe

	 Linux:    
	http://www.excelsior-usa.com/download/xds25x/xds-x86-251-enduser-linux.tgz

	: http://www.excelsior-usa.com/xdsdoc.html

Java:

	JDK (Java Development Kit)   :
	http://java.sun.com/j2se/1.5.0/download.jsp
	       
	
	 ,  on-line :
	http://java.sun.com/j2se/1.5.0/docs/index.html
	

          
Linux.

      
,   :

(   Linux)
        $ ./plates [inputfile [logfile]]
        
(  O Windows)
        > plates.exe [inputfile [logfile]]

( Java)
	> java Game [inputfile [logfile]]
        
inputfile --      .  
 ,      input.txt  
.        ,  
   0.

logfile --  ,      . 
  ,      log.txt. 
  .       
,      0.

        
   .

       .  
 .  (   )  
,      . 
  .      
,     ,     
  (..       
).

       
          1. 
       2,   
   3.      Ctrl+C  Esc 
  4. ,     
         move { }.

    :

move 0 {					;  ,  0
	ship 0 {				;  
		owner    { 1 }			; : 1, 2  3
		position { -28.500 0.000 }	;  
		velocity { 0.000 5.000 }	;  
		fuel     { 400.000 }		;     
	}
	ship 1 {
		owner    { 2 }
		position { -25.500 0.000 }
		velocity { 0.000 5.000 }
		fuel     { 400.000 }
	}
						;  ..
}				          

    1  20 .   owner 
  :

* 1 (   );
* 2 (   );
* 3 (    ).

      ,
  .

     ,   
   ,   
   ,   .

      ,  
       ..   :

move 0 {
        ;   
}

move 1 {
        ;     
}

;  ..

        , 
     . 
 ,   ,   
  Java    1.3.1 (JRE 1.3.1). 
   1.5.0 (JRE 1.5.0).   
   http://java.sun.com/j2se/1.3.1/download.jsp .
      "Download JRE 5.0 update 4"
( update   ).       
  ,       
  Java.
   
      ,  
   (JDK 1.5.0).      
.
    
  Java      ϣ
    run.bat (Windows)  run.sh (Linux),
      log-.
	       
    jar- LogPlayer.jar.
       jar-    
    zip-.

         
 ,        
  .  ,  ,     C++ 
   ,      
   C++.

        :      ,   
             
             .  ,
            , 
            ,  
            , 
          ,  ..    
         .
	
          
.

1.  C++
-------

   :

* player1.cpp --   
* player2.cpp --   
* input.txt   --      
* plates.cpp  --  

    C++  ,    
PLAYER   C++.   PLAYER    , 
   public ( MAX_SHIPS    
):

* :

PLAYER::PLAYER(
	/* in  */ int owner[MAX_SHIPS], 
	/* in  */ double x[MAX_SHIPS], 
	/* in  */ double y[MAX_SHIPS],
	/* in  */ double u[MAX_SHIPS], 
	/* in  */ double v[MAX_SHIPS], 
	/* in  */ double fuel[MAX_SHIPS]
);

*   :

void PLAYER::move(
	/* in  */ int owner[MAX_SHIPS],
	/* in  */ double x[MAX_SHIPS], 
	/* in  */ double y[MAX_SHIPS],
	/* in  */ double u[MAX_SHIPS], 
	/* in  */ double v[MAX_SHIPS],
	/* in  */ double fuel[MAX_SHIPS],
	/* out */ double fuel_consumption[MAX_SHIPS],
	/* out */ double norm_accel[MAX_SHIPS]
);

   ,       ,  
  .

2.  Pascal
----------

   :

* player1.pas --   ;
* player2.pas --   ;
* input.txt   --      
* plates.pas  --  

    Pascal  ,    
()   Pascal.         
    :

{$IFDEF PLAYER1}
Cplayer1
{$ELSE}
Cplayer2
{$ENDIF}

 ,  ,       PLAYER1  
   {$DEFINE PLAYER1},    
 Cplayer1,        Cplayer2.

    ,    public 
(  TIntArr  TDoubleArr    plates.pas):

* :

constructor Create(
	{ in  } var owner: TIntArr;
	{ in  } var x: TDoubleArr;
	{ in  } var y: TDoubleArr;
	{ in  } var u: TDoubleArr;
	{ in  } var v: TDoubeArr;
	{ in  } var fuel: TDoubleArr;
);

     :    
(1,    , 2,    , 
3,   ,       , 0, 
        ),
,       .

*   :

procedure move(
	{ in  } var owner: TIntArr;
	{ in  } var x: TDoubleArr;
	{ in  } var y: TDoubleArr;
	{ in  } var u: TDoubleArr;
	{ in  } var v: TDoubeArr;
	{ in  } var fuel: TDoubleArr;
	{ out } var fuel_consumption: TDoubleArr;
	{ out } var norm_accel: TDoubleArr;
);

   ,       ,  
  .

3.  Modula-2
------------

   :

* Player1.def --    ;
* Player1.mod --     ();
* Player2.def --    ;
* Player2.mod --     ();
* input.txt   --      
* Plates.mod  --  ;
* Plates.prj  --     ;
* Defs.def    --     ;
* Defs.mod    --     .

    Modula-2   Player1.mod, 
   Modula-2   ,   c
 Player1.def.

 :

PROCEDURE Create (VAR owner: TIntArr;
                  VAR x, y, u, v, fuel: TDoubleArr);
		  
  :

PROCEDURE Move   (VAR owner: TIntArr;
                  VAR x, y, u, v, fuel, fuel_consumption,
		  	norm_accel: TDoubleArr);

 TIntArr, TDoubleArr   MAX_SHIPS ( )    
Defs.def.

        :
xm =p Plates.prj 

     readme    
  XDSDIR  PATH  .

4.  Java
--------


   :

* Player.java --   
* Player1.java --   
* Player2.java --   
* input.txt   --      
* Game.java  --  
* LogReader.java --    

    Java  ,    
Player.    Player1.java
 Player1    ,    Player
( MAX_SHIPS    ):

* :

void init(
 	/* in  */ int owner[],
	/* in  */ double x[], 
	/* in  */ double y[],
	/* in  */ double u[], 
	/* in  */ double v[],
	/* in  */ double fuel[] 
);

*   :

void move(
	/* in  */ int owner[],
	/* in  */ double x[], 
	/* in  */ double y[],
	/* in  */ double u[], 
	/* in  */ double v[],
	/* in  */ double fuel[],
	/* out */ double fuel_consumption[],
	/* out */ double norm_accel[]
);

   ,       ,  
  .     
-  .



 
----------------------

        , 
     . 
 ,   ,   
  Java    1.3.1 (JRE 1.3.1). 
   1.5.0 (JRE 1.5.0).   
   http://java.sun.com/j2se/1.3.1/download.jsp .
      "Download JRE 5.0 update 4"
( update   ).       
  ,       
  Java.
   
      ,  
   (JDK 1.5).      
.
    
  Java      ϣ
    run.bat (Windows)  run.sh (Linux),
      log-.
	       
    jar- LogPlayer.jar.
       jar-    
    zip-.

 
-----------------------

      :

)       ;
)   -      
   ,        (  
C++  Pascal).

 ,        
 Pascal.

  ,     ,     
      .  , 
    ,       
 .
