16 my $ui = AA::UI->new('');
18 my $back = AA::Background->new('bg');
21 for (my $i=0; $i<5; $i++) {
22 my $v = AA::NetV->new("v$i");
26 'label' => ($i == 0) ? "Z" : ($i == 4) ? "S" : $i,
27 'h' => ($i == 0) ? 5 : 0,
33 for (my $i=0; $i<4; $i++) {
34 my $e = AA::NetE->new("e$i", $v[$i], $v[$i+1]);
40 for (my $i=1; $i<@v; $i++) {
41 my $ii = $i; # need to keep a copy in the current closure
42 $v[$i]->Bind('xs', sub { $e[$ii-1]->Get('f') - (($ii == @v-1) ? 0 : $e[$ii]->Get('f')) });
44 $v[4]->{XS}->Set('color', [1,0,1]);
48 $e[$i]->Set('f', $e[$i]->Get('f') + $df);
53 $v[$i]->Set('h', $v[$i]->Get('h') + 1);
58 for (my $i=0; $i<@v; $i++) {
59 $v[$i]->Set('hint', $i == $h);
64 sub { flow(0, 5); hint(1); },
66 sub { flow(1, 5); hint(2); },
68 sub { flow(2, 5); hint(3); },
70 sub { flow(3, 5); hint(-1); },
74 for (my $i=0; $i<@v-1; $i++) {
75 $e[$i]->Set('c', 5-$i);
78 sub { flow(0, 5); hint(1); },
80 sub { flow(1, 4); hint(2); },
82 sub { flow(2, 3); hint(3); },
86 sub { flow(2, -1); hint(2); },
88 sub { flow(1, -1); hint(1); },
95 sub { flow(0, -1); hint(2); },
97 sub { flow(2, 1); hint(3); },
100 sub { flow(2, -1); hint(2); },
103 sub { flow(2, 1); hint(3); },
106 sub { flow(2, -1); hint(2); },
110 sub { flow(1, -1); hint(1); },
111 sub { flow(0, -1); hint(3); },
114 sub { flow(2, -1); hint(2); },
115 sub { flow(1, -1); hint(1); },
116 sub { flow(0, -1); hint(-1); },
120 $ui->RunScenario($scenario, 1);