my $ii = $i; # need to keep a copy in the current closure
$v[$i]->Bind('xs', sub { $e[$ii-1]->Get('f') - (($ii == @v-1) ? 0 : $e[$ii]->Get('f')) });
}
-$v[4]->{XS}->Set('color', [0,1,0]);
+$v[4]->{XS}->Set('color', [1,0,1]);
sub flow($$) {
my ($i,$df) = @_;
$v[$i]->Set('h', $v[$i]->Get('h') + 1);
}
+sub hint($) {
+ my ($h) = @_;
+ for (my $i=0; $i<@v; $i++) {
+ $v[$i]->Set('hint', $i == $h);
+ }
+}
+
my $scenario = [
- sub { flow(0, 5); },
+ sub { flow(0, 5); hint(1); },
sub { up(1); },
- sub { flow(1, 5); },
+ sub { flow(1, 5); hint(2); },
sub { up(2); },
- sub { flow(2, 5); },
+ sub { flow(2, 5); hint(3); },
sub { up(3); },
- sub { flow(3, 5); },
+ sub { flow(3, 5); hint(-1); },
];
if (1) {
$e[$i]->Set('c', 5-$i);
}
$scenario = [
- sub { flow(0, 5); },
+ sub { flow(0, 5); hint(1); },
sub { up(1); },
- sub { flow(1, 4); },
+ sub { flow(1, 4); hint(2); },
sub { up(2); },
- sub { flow(2, 3); },
+ sub { flow(2, 3); hint(3); },
sub { up(3); },
sub { flow(3, 2); },
sub { up(3); },
- sub { flow(2, -1); },
+ sub { flow(2, -1); hint(2); },
sub { up(2); },
- sub { flow(1, -1); },
+ sub { flow(1, -1); hint(1); },
sub { up(1); },
sub { up(1); },
sub { flow(1, 1); },
sub { up(1); },
sub { up(1); },
sub { up(1); },
- sub { flow(0, -1); },
+ sub { flow(0, -1); hint(2); },
sub { up(2); },
- sub { flow(2, 1); },
+ sub { flow(2, 1); hint(3); },
sub { up(3); },
sub { up(3); },
- sub { flow(2, -1); },
+ sub { flow(2, -1); hint(2); },
sub { up(2); },
sub { up(2); },
- sub { flow(2, 1); },
+ sub { flow(2, 1); hint(3); },
sub { up(3); },
sub { up(3); },
- sub { flow(2, -1); },
+ sub { flow(2, -1); hint(2); },
sub { up(2); },
sub { up(2); },
sub { flow(2, 1); },
- sub { flow(1, -1); },
- sub { flow(0, -1); },
+ sub { flow(1, -1); hint(1); },
+ sub { flow(0, -1); hint(3); },
sub { up(3); },
sub { up(3); },
- sub { flow(2, -1); },
- sub { flow(1, -1); },
- sub { flow(0, -1); },
+ sub { flow(2, -1); hint(2); },
+ sub { flow(1, -1); hint(1); },
+ sub { flow(0, -1); hint(-1); },
];
}