# OnBoarding {{tag>codingame onboarding}} # 접속주소 http://www.codingame.com/ # 게임방법 다가오는 적기들을 물리쳐야 합니다. 적기들의 이름과 거리를 알려줍니다. STDOUT 으로 이름을 출력하면, 해당 적기를 향해 미사일을 발사합니다. 모든 적기가 다가오기전에 모두 물리쳐야 합니다. 5 threats approaching fast ! Threats within range: HotDroid 60m HotDroid 60m HotDroid 60m HotDroid 60m Standard Output Stream: HotDroid ## 사용할 언어를 선택합니다. ## Perl은 선택하면 아래와 같은 기본 코드가 제공됩니다. `$enemy` 에는 적기의 이름이, `$dist`에는 적기와의 거리가 입력됩니다. ```perl select(STDOUT); $| = 1; # DO NOT REMOVE # The code below will read all the game information for you. # On each game turn, information will be available on the standard input, you will be sent: # -> the total number of visible enemies # -> for each enemy, its name and distance from you # The system will wait for you to write an enemy name on the standard output. # Once you have designated a target: # -> the cannon will shoot # -> the enemies will move # -> new info will be available for you to read on the standard input. # game loop while (1) { chomp($count = ); # The number of current enemy ships within range print STDERR "COUNT:".$count ."\n"; @enemies = (); for(my $i=0; $i<$count; $i++) { # enemy: The name of this enemy # dist: The distance to your cannon of this enemy chomp($tokens=); ($enemy, $dist) = split(/ /,$tokens); print STDERR "name:".$enemy."\tdist:".$dist ."\n"; my $e->{name}=$enemy; $e->{dist}=$dist; push @enemies,$e; } $min_e = $enemy; $min_d = $dist; print STDERR "enemies:".$#enemies . "\n"; for my $href (@enemies) { print STDERR "x:". $href->{name} . "\n"; $name = $href->{name}; $dist = $href->{dist}; if($min_d > $dist){ $min_d = $dist; $min_e = $name; } } print $min_e."\n"; # Write an action using print # To debug: print STDERR "Debug messages...\n"; #print "HotDroid\n"; # The name of the most threatening enemy (HotDroid is just one example) } ```