clear screen before score boards gets drawn
[svn42.git] / dart / Dart.pm
index d9b3795..51f3554 100644 (file)
@@ -24,12 +24,18 @@ sub new
   return $self;
 }
 
+sub trace_shoot
+{
+  my $self=shift;
+  my ($property)=@_;
+  push @{$self->{trace_shoot}},$property;
+}
 
 sub get_color
 {
   my $self=shift;
   my ($mul,$zahl)=@_;
-  my @zahlen =  qw/20 1 18 4 13 6 10 15 2 17 3 19 7 16 8 11 14 9 12 5/;
+  my @zahlen =  qw/20 1 18 4 13 6 10 15 2 17 3 19 7 16 8 11 14 9 12 5 25/;
   my $counter=0;
   $counter++ while($zahl != shift @zahlen and @zahlen);
   $mul=0 if $mul >1;
@@ -46,6 +52,7 @@ sub init
   $self->{current_player}=0;
   $self->{player_count}=@{$self->{player}};
   $self->{active_player_count}=$self->{player_count};
+  $self->{trace_shoot_data}={};
   $self->callback('init');
 }
 
@@ -83,6 +90,7 @@ sub run
   $self->{sound_out_fh}=$sound_out_fh;
 
   push @history, Clone::clone($self);
+  print "\033[2J";
   $self->callback('before_shoot');
   #while ( my $shoot_data = <$data_in_fh>)
   while ( my $shoot_data = <STDIN>)
@@ -110,6 +118,7 @@ sub run
       next;
     }
     push @history, Clone::clone($self);
+    print "\033[2J";
     $self->callback('before_shoot');
   }
 }
@@ -122,12 +131,34 @@ sub shoot
   {
     $self->{current_shoot}={mult=>$mult,number=>$number};
     $self->{current_shoot_count}++;
-    return $self->callback('shoot',$mult,$number);
+    my $result = $self->callback('shoot',$mult,$number);
+    for my $trace_prop ( @{$self->{trace_shoot}})
+    {
+      push @{$self->{trace_shoot_data}{$self->{current_player}}},$self->get_current_player()->{$trace_prop};
+    }
+    return $result;
   } else {
     return 0;
   }
 }
 
+sub plot_trace_shoot
+{
+  my $self=shift;
+  my $datastr;
+  for my $player_num (keys %{$self->{trace_shoot_data}})
+  {
+    $datastr.=$self->get_player($player_num)->{name}.':';
+    $datastr.= join ',',@{$self->{trace_shoot_data}{$player_num}};
+    $datastr.="\n";
+  }
+  chomp $datastr;
+  my $plotter;
+  open($plotter,"|./plot.py") or return;
+  print $plotter $datastr;
+  close $plotter;
+}
+
 sub shout_last_shoot
 {
   my $self=shift;