improved plots
[svn42.git] / dart / dart-red-x01.pl
index 56b4cb2..af4491c 100755 (executable)
@@ -13,8 +13,10 @@ my $dart = new Dart(player_names=>\@player,
                       next_player=>\&next_player,
                       before_shoot=>\&print_score,
                       init=>\&init,
+                      end_game=>\&Dart::plot_trace_shoot,
                     }
                   );
+$dart->trace_shoot('score');
 exit $dart->run();
 
 ### ===============================
@@ -22,7 +24,6 @@ exit $dart->run();
 sub init
 {
   my $self=shift;
-
   for my $player_idx (0..($self->{player_count}-1))
   {
     $self->get_player($player_idx)->{score} = $maxScore;
@@ -39,19 +40,16 @@ sub shoot
 {
   my $self=shift;
   my ($mult,$zahl)=@_;
-  my $color = $self->get_color($mult,$zahl)?1:-1;  
-  if ($self->get_current_player()->{score} >= $mult * $zahl)
-  {
-    $self->get_current_player()->{score} -= $color *$mult * $zahl;
-    $self->shout_last_shoot();
-    $self->win() if &win_condition($self);
-  }
-  else
+  my $color = $self->get_color($mult,$zahl)?1:-1; 
+  if ($color <0)
   {
-    $self->shout("miss");
-    $self->get_current_player()->{score} = $self->get_current_player()->{last_score};
-    $self->finish_player_round();
+    $self->shout("plus");
+  }else{
+    $self->shout("minus");
   }
+  $self->get_current_player()->{score} -= $color *$mult * $zahl;
+  $self->shout_last_shoot();
+  $self->win() if &win_condition($self);
 }
 
 sub next_player