
1. рдиреАрдЪреЗ рддрдХ рдкрд╣реБрдБрдЪрдирд╛
1.1ред рдмреЙрдЯ рдХреЗ рдирдЬрд░рд┐рдП рд╕реЗ рдЧреЗрдордкреНрд▓реЗ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдмреЙрдЯ рдХреА рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдФрд░ рд╕рддреНрдпрд╛рдкрди рдкреНрд░рдгрд╛рд▓реА (рдЪреЗрдХрд░) рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдЖрдпреЛрдЬрдХреЛрдВ рдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЗрд╕ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рд░реЛрдмреЛрдЯ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдорд╛рдирдХ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ рд╣реИред рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд┐рд░реНрдгрдп рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдмрд╕ рдЗрд╕реЗ рдорд╛рди рд▓реЗрдВред рдпрд╣ рдХреИрд╕реЗ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХреЗ рд╡рд┐рдкрд░реАрдд рдЦреЗрд▓, рдмрд╛рд░реА рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдореЛрдбрд╝ рдХреЗ рд▓рд┐рдП, рдмреЙрдЯ рд╕реНрдЯрдб рдкрд░ рдЦреЗрд▓ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рд╕рднреА рдЧреНрд░рд╣реЛрдВ рдХрд╛ рд╡рд░реНрдгрди; рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреНрдЮрд╛рдд рд╣реИ:
- рдЧреНрд░рд╣ рдХреА рдЕрдиреВрдареА рдЖрдИрдбреА
- рдЗрд╕рдХрд╛ рдХрд╛рд░реНрддреАрдп рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реИ
- рдЧреНрд░рд╣ рдХреЗ рд╕реНрд╡рд╛рдореА рдХреА рдЖрдИрдбреА ( NB: рдпрджрд┐ рдЧреНрд░рд╣ рддрдЯрд╕реНрде рд╣реИ, рддреЛ рдЖрдИрдбреА рд╢реВрдиреНрдп рд╣реИ , рдпрджрд┐ рд╡рд╣ рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд╛ рд╣реИ, рддреЛ рдЖрдИрдбреА рдПрдХ рд╣реИ )
- рдЧреНрд░рд╣ рдкрд░ рдЬрд╣рд╛рдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
- рд╢рд┐рдк рдЧреНрд░реЛрде рд░реЗрдЯ
- рдЙрдбрд╝рд╛рди рдореЗрдВ рд╕рднреА рдмреЗрдбрд╝реЗ рдХрд╛ рд╡рд┐рд╡рд░рдг:
- рдлреНрд▓реАрдЯ рдУрдирд░ рдЖрдИрдбреА
- рдмреЗрдбрд╝реЗ рдореЗрдВ рдЬрд╣рд╛рдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
- рдЬрд┐рд╕ рдЧреНрд░рд╣ рд╕реЗ рдЙрдбрд╝рд╛рди рднрд░ рд░рд╣реА рд╣реИ, рдЙрд╕рдХреА рдЖрдИрдбреА
- рдЬрд┐рд╕ рдЧреНрд░рд╣ рдХрд╛ рдмреЗрдбрд╝реЗ рдЙрдбрд╝рд╛рди рднрд░ рд░рд╣рд╛ рд╣реИ, рдЙрд╕рдХреА рдЖрдИрдбреА
- рдХрд┐рддрдиреА рдФрд░ рдЪрд╛рд▓реЗрдВ рдЙрдбрд╝реЗрдВрдЧреА рдмреЗрдбрд╝реЗ ( NB: рдмреЗрдбрд╝реЗ рдХреА рдЪрд╛рд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЧреНрд░рд╣ A рд╕реЗ рдЧреНрд░рд╣ B рдкрд░ рдЬрд╛рдиреЗ рдореЗрдВ рдЦрд░реНрдЪ рд╣реЛрдЧреА, A рдФрд░ B рдХреЗ рдмреАрдЪ рдЧреЛрд▓ рджреВрд░реА рдкрд░ рдпреВрдХреНрд▓рд┐рдбрд┐рдпрди рджреВрд░реА рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ)
рдЗрд╕рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ, рдмреЙрдЯ рд╕реНрдЯреИрдбрдЖрдЙрдЯ рдХреЛ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рд▓рд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдиреЗ рдЕрдкрдиреА рдмрд╛рд░реА рдЦрддреНрдо рдХрд░ рджреА рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЯреАрдо рд╣реИ: рдЧреНрд░рд╣ рдП рд╕реЗ рдЧреНрд░рд╣ рдмреА рддрдХ рдПрдХреНрд╕ рдЬрд╣рд╛рдЬ рднреЗрдЬреЗрдВ ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЧреНрд░рд╣ A рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдЧреНрд░рд╣ A рдпрд╛ B рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдЧреНрд░рд╣ A рдпрд╛ X рдкрд░ X рдЬрд╣рд╛рдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдп рд╕реЗ рдХрдо рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдореИрдЪ рд╕реЗ рдЕрдпреЛрдЧреНрдп рдШреЛрд╖рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
1.2ред рд░реЗрдЯрд┐рдВрдЧ рдХреИрд╕реЗ рдорд╛рдиреА рдЬрд╛рддреА рд╣реИ
2. рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░рдирд╛
2.1ред рдкрдВрдЬреАрдХрд░рдг
рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рд╡рд┐рд╢реЗрд╖ рдирд╣реАрдВ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдХрдИ рдЦрд╛рддреЗ рд╣реЛрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдФрд░ рдпрд╣ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрд╛рд╕рд╡рд░реНрдб рднреАред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЯреАрдо рдореЗрдВ рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рддреБрд░рдВрдд рдЬреАрд╡рдиреА рдореЗрдВ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
2.2ред рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкреИрдХреЗрдЬ рдХреЛ рдкрд╣рдЪрд╛рдирдирд╛
рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдпреЛрдЬрдХреЛрдВ рдиреЗ рдореБрдЦреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкреИрдХреЗрдЬ рдмрдирд╛рдПред рдЗрди рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдПрдХ рдЪреЗрдХрд░, рдПрдХ рд░рд┐рдкреНрд▓реЗ рдкрд╣рд░реЗрджрд╛рд░, рдХреБрдЫ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдмреЙрдЯ рдФрд░ рдЕрдкрдирд╛ рдмреЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЖрдк рдпрд╣рд╛рдВ рд╕реЗ рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯрд░ рдХрд┐рдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдореБрдЭреЗ рдЬрд╛рд╡рд╛ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдмрд╛рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ред рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рдЦреБрд╢реА рдХреЗ рд▓рд┐рдП рдЬреЛ рдореЗрд░реА рднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдЕрд▓рдЧ рд╣реИред
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ .zip рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЙрд╕реЗ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреА рдЬрдЧрд╣ рдкрд░ рдЕрдирдЬрд╝рд┐рдк рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдирд┐рдореНрди рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
java_starter_package/ |-- example_bots/ |-- maps/ |-- tools/ |-- Fleet.java |-- MyBot.java |-- Planet.java |-- PlanetWars.java
рдЙрджрд╛рд╣рд░рдг_рдмреЙрдЯреНрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдмреЙрдЯ рд╣реИрдВ, рдФрд░ рдореИрдкреНрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ, рдирдХреНрд╢реЗ рд╣реИрдВред рдЯреВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ (рд╡реИрд╕реЗ, рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рд╕рднреА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реНрдЯрд╛рд░реНрдЯрд░ рдХрд┐рдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ): рд╡рд╣рд╛рдБ рджреЛ рдЬрд╛рд░ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рдмрд┐рдирд╛ рд╕реНрд░реЛрдд рдХреЗред рдкрд╣рд▓рд╛ рдПрдХ PlayGame.jar рд╣реИ, рдЬреЛ рдПрдХ рдЪреЗрдХрд░ рд╣реИред рдЖрдкрдХреЛ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
java -jar tools/PlayGame.jar maps/map1.txt 1000 1000 log.txt "java -jar my_bots/trunk/MyBot.jar" "java -jar example_bots/ProspectorBot.jar"
рдмрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ: рдкрд╣рд▓рд╛ рддрд░реНрдХ рдирдХреНрд╢реЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рддрд░реНрдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдЕрдзрд┐рдХрддрдо рд╕реНрдЯреНрд░реЛрдХ рдХреА рд▓рдВрдмрд╛рдИ рд╣реИ ( рд╣рд╛рдВ, рд╕рдордп рдореЗрдВ рдХрджрдо рд╕реАрдорд┐рдд рд╣реИ : рдпрджрд┐ рдХреЛрдИ рднреА рдмреЙрдЯ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЦреЛ рдЬрд╛рдПрдЧрд╛ , рддреАрд╕рд░рд╛ рддрд░реНрдХ рдЕрдзрд┐рдХрддрдо рд╣реИред рдЪрд╛рд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ред рддрд░реНрдХреЛрдВ рдореЗрдВ рдЕрдЧрд▓рд╛ рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╣реИ, рдХрдорд╛рдВрдб рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдмреЙрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдбред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрдВрдЬрди рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ; рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдореЗрдВ рд╕рднреА рдореИрдЪ рдЖрдордиреЗ-рд╕рд╛рдордиреЗ рд╣реЛрддреЗ рд╣реИрдВред
рдЙрдкрдХрд░рдг рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджреВрд╕рд░реА рдлрд╝рд╛рдЗрд▓ ShowGame.jar рд╣реИ, рдЬреЛ рдореИрдЪ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ рдорд╛рдирдХ рдЗрдирдкреБрдЯ рдкрд░ рд╕рдмрдорд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдкрд░реАрдХреНрд╖рдХ рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЛ рд╕реАрдзреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВ:
java -jar tools/PlayGame.jar params | java -jar tools/ShowGame.jar
рдЗрд╕рдХреЗ рдмрд╛рдж, рд░реВрдЯ * .java рдлрд╛рдЗрд▓реЗрдВ рд░рд╣рддреА рд╣реИрдВред рдлреНрд▓реАрдЯ.рдЬрд╛рд╡рд╛ рдФрд░ рдкреНрд▓реИрдиреЗрдЯ.рдЬрд╛рд╡рд╛ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдЙрдирдореЗрдВ рдХреНрд░рдорд╢рдГ рдмреЗрдбрд╝реЗ рдФрд░ рдЧреНрд░рд╣ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред PlanetWars рд╡рд░реНрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдзрд┐рдХ рд╕рд╛рд░реНрдердХ рд╣реИ: рдпрд╣ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЪреЗрдХрд░ рд╕реНрдЯрдб рдкрд░ рдмреЙрдЯ рдХреЛ рдХреНрдпрд╛ рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рдЬреЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ:
public interface IPlanetWars { int NumPlanets(); Planet GetPlanet(int planetID); int NumFleets(); Fleet GetFleet(int fleetID); List<Planet> Planets(); List<Fleet> Fleets(); int Distance(int sourcePlanet, int destinationPlanet); void IssueOrder(int sourcePlanet, int destinationPlanet, int numShips); void FinishTurn(); }
рдореИрдВрдиреЗ рдХрд╣рд╛ "рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ" рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдмрд╛рддрдЪреАрдд рдХреЗ рддрдВрддреНрд░ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдХреЗрд╡рд▓ рдореБрдЦреНрдп рднрд╛рдЧ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛; рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреБрдЫ рдФрд░ рддрд░реАрдХреЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рд╡реИрд╕реЗ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЬрд╛рд╡рд╛ рдХреЛрдбрд┐рдВрдЧ рдХрдиреНрд╡реЗрдВрд╢рдиреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдХрд┐рддрдирд╛ рдХрдо рд╣реИ, рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рднрд╛рд╖рд╛ рд╕реЗ рднрд╛рд╖рд╛ рдореЗрдВ рдЕрд░реНрдз-рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдмреАрдЪ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЕрдВрддрд░ рдирд╣реАрдВ рдерд╛ред
рдкрд╣рд▓реЗ рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЧрдИ рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВред рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ ( рд╡реИрд╕реЗ, рдореИрдВ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ: рд╡реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдмрд▓реНрдХрд┐ рдХрдордЬреЛрд░ рд╣реИрдВ ) рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣рдЯрд╛рдПрдВред рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓ MyBot.java рдХреЛ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рднреА рдЗрд╕рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдХ рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рднреА рддрд░реНрдХ DoTurn рдкрджреНрдзрддрд┐ рдореЗрдВ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЗрдирдкреБрдЯ рдкрд░ PlanetWars рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкреИрдХреЗрдЬ рдореЗрдВ рдХреЛрдб рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╢рд╛рд▓реАрдирддрд╛ рд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рд╕рд░рд▓ рдмреЙрдЯ рд▓рд┐рдЦреЗрдВред рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдзрд╛рд░рд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдХрд┐рд╕реА рдлрд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред
2.3ред рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ
рд╕рдорд╛рдзрд╛рди рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рднреА (рд╕рднреА!) рд╕реНрд░реЛрдд (!) рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдмреЙрдЯ рдХреЛ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреИрдХ рдХрд░реЗрдВ, рдФрд░ рдЗрд╕ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЖрдХрд╛рд░ рджреЛ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджреНрдпрдкрд┐, рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрддрдирд╛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ;)ред рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рдЖрдкрдХреЛ рдореЗрд▓ рдореЗрдВ рдПрдХ рдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдХрд▓рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдкрдХреЗ рдХрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░реЗрдЧреАред рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣рд╛, рддреЛ рдкрд╛рда рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:
рдпрд╣ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ Google AI рдЪреИрд▓реЗрдВрдЬ рдореЗрдВ рдЖрдкрдХреЗ рдирд╡реАрдирддрдо рд╕рдмрдорд┐рд╢рди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рд╣реИрдВ, рддреЛ рд╕рдВрдХрд▓рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдорд┐рд▓реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ред рдЬрд╝рд┐рдк рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИред
unzip -u entry.zip > /dev/null 2> /dev/null
рдорд┐рд▓реА MyBot.javaред рдЗрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдЬрд╛рд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛
javac Bot.java Fleet.java MyBot.java Planet.java PlanetWars.java SimpleBot.java jar cfe MyBot.jar MyBot Bot.class PlanetWars.class Planet.class Fleet.class MyBot.class SimpleBot$1.class SimpleBot.class
рдирд┐рд╖реНрдард╛ рд╕реЗ,
рд╕рдВрдХрд▓рд┐рдд рд▓рд┐рдкрд┐
рдЙрд╕рдХреЗ рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рдПрдХ рдиреЛрдЯ рдмрддрд╛рддреЗ рд╣реБрдП рдХрд┐ рдЖрдкрдиреЗ рдмреЙрдЯ рднреЗрдЬрд╛ рд╣реИ, рдЖрдкрдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддреЗ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рдмрд╛рдж, рдЖрдкрдХрд╛ рджрд┐рдорд╛рдЧрд╝ рдмрд╛рдХреА рдмреЙрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдмрд╣рд╛рджреБрд░реА рд╕реЗ рд▓рдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛:

рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рддреНрдпреЗрдХ рд▓рдбрд╝рд╛рдИ рдХреЛ рджрд╛рдИрдВ рдУрд░ "рд╡реНрдпреВ рдЧреЗрдо" рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдЕрдкрдиреА рд░реЗрдЯрд┐рдВрдЧ рдпрд╛ рддреЛ рд╡рд░реНрддрдорд╛рди рд░реИрдВрдХрд┐рдВрдЧ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдпрд╛ рдЕрдкрдиреА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдпрд╣ рднреА рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЛ рдмреЙрдЯ рдХреЛ рддреБрд░рдВрдд рдирд╣реАрдВ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдП, рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдбреЛрдВ рдкрд░ рдЦреБрдж рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдерд╛рдиреАрдп рдХрд╛рд░реАрдЧрд░реЛрдВ (рдЖрдкрдХреЗ рд╡рд┐рдирдореНрд░ рд╕реЗрд╡рдХ рд╕рд╣рд┐рдд) рдиреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдИ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдХрд╛рд░реНрдб рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рд╕рднреА рдмреЙрдЯ (рдФрд░ рдЖрдкрдХреЗ рдЕрдиреНрдп рдмреЙрдЯ, рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рдкрд░ рдмреЙрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИ рдФрд░ рдЬреАрдд рдкрд░ рдЖрдВрдХрдбрд╝реЗ рджреЗрддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдпрд╣рд╛рдВ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╣ рд╕рдм рд╣реИред рдореБрдЭреЗ рд╕рд╡рд╛рд▓реЛрдВ, рд╕реНрдкрд╖реНрдЯреАрдХрд░рдгреЛрдВ рдФрд░ рд╕реБрдзрд╛рд░реЛрдВ рдХреА рдЦреБрд╢реА рд╣реЛрдЧреАред
рдЦреВрдиреА рд▓рдбрд╝рд╛рдИ рдФрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдореАрдареЗ рд╕рдкрдиреЗ! ┬й
UPD: рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рд╕реНрдерд▓ рд╣реИред рдкреАрдбрд╝рд┐рддреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдмреЙрдЯреНрд╕ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рджрд┐рдП рд╣реИрдВред рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкреИрдХреЗрдЬ рдХреЛ рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯрд░ рдХрд┐рдЯ рд╕реЗ рд▓рд┐рдВрдХ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛! ;)
UPD2: рдЙрдард╛рдпрд╛, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗред рд╡реЗ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдХреЗ рдЕрдВрдд рддрдХ рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддреЗ рд╣реИрдВред рд╡реИрд╕реЗ, рдЕрдм рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреБрд▓реА рд╣реЛ рдЧрдИ рд╣реИ!