next_player=>\&next_player,
before_shoot=>\&print_score,
init=>\&init,
+ end_game=>\&Dart::plot_trace_shoot,
}
);
+$dart->trace_shoot('score');
exit $dart->run();
### ===============================
sub init
{
my $self=shift;
-
for my $player_idx (0..($self->{player_count}-1))
{
$self->get_player($player_idx)->{score} = $maxScore;
{
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