| line |
true |
false |
branch |
|
35
|
0 |
1 |
$debug ? : |
|
142
|
76 |
6 |
unless $bm->[$y][$x] |
|
149
|
40 |
8 |
unless $$bm[$y + $dy][$x + $dx] |
|
152
|
4 |
4 |
unless $$bm[$y + 2 * $dy][$x + 2 * $dx] |
|
155
|
6 |
0 |
if @OFF |
|
156
|
6 |
0 |
if $near[$y][$x] |
|
191
|
0 |
8 |
if 6 < $cNmin |
|
193
|
4 |
4 |
if ($cNmin <= 1) |
|
194
|
4 |
0 |
if $$N0[($dir + 4) % 8] or $cN0min <= 2 |
|
196
|
0 |
0 |
unless (grep $$N0min[($dir + $_) % 8], -1, 1) |
|
198
|
0 |
0 |
if @perp <= 1 |
|
201
|
4 |
0 |
if ($N->[$dir]) |
|
203
|
0 |
0 |
if 6 < $cNN and $Nmin->[$dir] |
|
204
|
4 |
0 |
if push @res, ["doubleray", 0] |
|
210
|
0 |
0 |
$seen_next2 ? : |
|
215
|
0 |
0 |
if $$nearmin[$y + $dy1][$x + $dx1][$DD] |
|
216
|
0 |
0 |
if not $N0min->[$DD] or $$N0min[($DD + 4) % 8] |
|
224
|
0 |
0 |
if (@NEAR) |
|
226
|
0 |
0 |
if $NEAR[0][2] and $cNmin <= 3 and $cN >= 3 and $dir & 1 and not $$N0min[($dir + 2 * $n0) % 8] and not grep($$N0min[($dir + $_ * $n0 + 4) % 8], 1, 2) |
|
230
|
0 |
0 |
if $NEAR[0][2] and $cNmin <= 2 and not $dir & 1 |
|
233
|
0 |
0 |
if not $dir & 1 and $NEAR[0][1] and $NEAR[0][2] ^^ $NEAR[0][3] and !$NEAR[0][3] || $NEAR[0][4] and $cN0min <= 3 |
|
240
|
0 |
0 |
unless $$Nmin[($dir + 2 * $D) % 8] |
|
243
|
0 |
0 |
if ($nnn) { } |
|
|
0 |
0 |
elsif (not @NEAR and $cNmin == 2 and $$N0min[($dir + 4) % 8] and $cN0min <= 3 + ($dir & 1) and $cnt->[$y][$x] >= 3 + ($dir & 1)) { } |
|
244
|
0 |
0 |
if $nnn == 2 |
|
246
|
0 |
0 |
if ($$N0[($dir + 4) % 8] || !($dir & 1) && $cN0min == 3 and not $$N0min[($dir + 2 * $DD) % 8] and $$px[$y + $dy + 2 * $DD * $dx][$x + $dx - 2 * $DD * $dy] || !($dir & 1) && $$cntmin[$y + $dy + $DD * $dx][$x + $dx - $DD * $dy] <= 3) |
|
251
|
0 |
0 |
if ($cN0min == 3 and $cNmin == 2 and not $dir % 2 and $$cntmin[$y + $dy + $DD * $dx][$x + $dx - $DD * $dy] == 2 and my(@back) = grep($$N0min[($dir + 4 + $_) % 8], 1, -1)) |
|
254
|
0 |
0 |
@back ? : |
|
|
0 |
0 |
if push @res, ["Btail", $DD, 0, undef, undef, undef, ["N", $x + $dx, $y + $dy, ($dir + 2 * $DD) % 8], ["N", $x + $dx - $DD * $dy, $y + $dy + $DD * $dx, ($dir - 2 * $DD) % 8], ["I", $x + $dx - $DD * $dy, $y + $dy + $DD * $dx, ($dir + 4 + $DD) % 8], @back ? ["E", $x, $y, ($dir + 4 + $back[-1]) % 8] : ()] |
|
259
|
0 |
0 |
$dir & 1 ? : |
|
|
0 |
0 |
if push @res, ["Near-corner", $DD, 0, [",", [$x + $dx, $y + $dy, ($dir + 2 * $DD) % 8]], undef, undef, $dir & 1 ? () : (["I", $x, $y, ($dir + $DD) % 8], ["Ef", $x + $dx, $y + $dy, ($dir + 4) % 8])] |
|
264
|
0 |
0 |
if $dir & 1 and not $$N0min[($dir + $DD) % 8] and $cNmin <= 2 |
|
265
|
0 |
0 |
if $cNmin == 3 and $dir & 1 and $nnn == 1 and $$N0min[($dir + 4) % 8] and $$Nmin[($dir + 4 - $DD) % 8] and $$Nmin[($dir + 4 - 2 * $DD) % 8] |
|
273
|
0 |
0 |
if $$N0min[($dir + $D * $step) % 8] |
|
275
|
0 |
0 |
unless $DDD |
|
278
|
0 |
0 |
if $$cntmin[$y + $dy1][$x + $dx1] <= 4 - ($dir & 1) and $$nearmin[$y + $dy1][$x + $dx1][($dir + 4 - $DDD) % 8] |
|
281
|
0 |
0 |
if $dir & 1 |
|
283
|
0 |
0 |
unless $$Nmin[($dir + $D) % 8] |
|
286
|
0 |
0 |
if $cNmin <= 2 and not $dir & 1 and $nnn1 and not $$N0min[($dir + $DD + 4) % 8] |
|
288
|
0 |
0 |
if $cNmin == 3 and not $dir & 1 || $nnn1 || $across2 || $$N[($dir + 2) % 8] || $$N[($dir - 2) % 8] |
|
290
|
0 |
0 |
if push @res, ["?"] |
|
324
|
0 |
0 |
if ($$N0min[($dir + $d) % 8]) |
|
325
|
0 |
0 |
if ($bad and $dir & 1 and $$N0min[($dir + 4) % 8] and not $$N0min[($dir + 3) % 8] and not $$N0min[($dir + 5) % 8]) |
|
329
|
0 |
0 |
if ($NNN->[$dir] and not $$NNN[($dir1 + 1) % 8] and not $$NNN[($dir1 - 1) % 8]) |
|
334
|
0 |
0 |
if $bad or not $dir & 1 and $$N0min[($dir + 2 * $d) % 8] |
|
335
|
0 |
0 |
if ($dir & 1 and $$Nmin[($dir + 2 * $d) % 8] and not $$Nmin[($dir - 2 * $d) % 8]) |
|
339
|
0 |
0 |
if ($$pxmin[$y + $dy + 2 * $dy1][$x + $dx + 2 * $dx1]) { } |
|
341
|
0 |
0 |
$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] ? : |
|
|
0 |
0 |
if $$px[$y + 3 * $dy1][$x + 3 * $dx1] and $$px[$y + 2 * $dy + 2 * $dy1][$x + 2 * $dx + 2 * $dx1] ^^ $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] and !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || $cnt->[$y][$x] < 5 && $$cnt[$y + $dy1][$x + $dx1] < 6 and not $$px[$y + $dy + 3 * $dy1][$x + $dx + 3 * $dx1] and $cntmin->[$y][$x] < 6 and !$$px[$y - $dy1][$x - $dx1] || $cntmin->[$y][$x] + $$cntmin[$y - $dy1][$x - $dx1] < 10 and !$$px[$y - $dy + $dy1][$x - $dx + $dx1] || $cnt->[$y][$x] + $$cnt[$y - $dy + $dy1][$x - $dx + $dx1] < 9 and !($$px[$y + 4 * $dy1][$x + 4 * $dx1] && $$px[$y + 5 * $dy1][$x + 5 * $dx1]) || $cntmin->[$y][$x] + $$cntmin[$y + 4 * $dy1][$x + 4 * $dx1] + $$cntmin[$y + 5 * $dy1][$x + 5 * $dx1] < 15 and grep((!$$px[$y + $_ * $dy1 - $dy][$x + $_ * $dx1 - $dx]), 2, 3, 4) and !$$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] || (grep($$px[$y + 4 * $dy1 + $_ * ($dy - $dy1)][$x + 4 * $dx1 + $_ * ($dx - $dx1)], 0, 1) || $$px[$y - $dy1][$x - $dx1]) && $$cntmin[$y + 3 * $dy1][$x + 3 * $dx1] < 6 && $$cnt[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] > 2 and ($last = !!$$px[$y + 4 * $dy1][$x + 4 * $dx1]) || $$px[$y + 5 * $dy1 - $dy][$x + 5 * $dx1 - $dx] |
|
364
|
0 |
0 |
if ($last = !!$$px[$y + 3 * $dy1][$x + 3 * $dx1]) || $$px[$y + 4 * $dy1 - $dy][$x + 4 * $dx1 - $dx] and $$px[$y + 2 * $dy + $dy1][$x + 2 * $dx + $dx1] and $last || !$$px[$y + 3 * $dy1 - $dy][$x + 3 * $dx1 - $dx] and $last || $$cntmin[$y + $dy1][$x + $dx1] < 6 && ($cntmin->[$y][$x] < 6 && ($cntmin->[$y][$x] < 5 || $$px[$y - $dy1][$x - $dx1] && $$cntmin[$y - $dy1][$x - $dx1] < 4)) |
|
375
|
0 |
0 |
if $_ ne $opp |
|
377
|
0 |
0 |
$$Nmin[($dir - 2 * $d) % 8] ? : |
|
|
0 |
0 |
if push @res, [$$Nmin[($dir - 2 * $d) % 8] ? "3fork3" : "rhombus", $d, 0, ["\x{b4}", [$x + $dx, $y + $dy, @dep]]] |
|
380
|
0 |
0 |
unless $bad |
|
381
|
0 |
0 |
if ($$N0min[($dir + 4) % 8] and $cN0min <= 4 and $dir & 1) |
|
383
|
0 |
0 |
if $px->[$mirY][$mirX] and $cntmin->[$mirY][$mirX] <= 4 and $cnt->[$mirY][$mirX] >= 4 and $nearmin->[$mirY][$mirX][($dir - 2 * $d) % 8] |
|
387
|
0 |
0 |
if push @res, ["fake-curve", $d, 0, ["curve", [$x + $dx[$baddir], $y + $dy[$baddir], ($dir + $d) % 8]]] |
|
400
|
0 |
0 |
if $$cntedge[$l->[1]][$l->[0]] != 1 |
|
441
|
0 |
0 |
unless my $ray = $rays->[$dir] |
|
442
|
0 |
0 |
if $ray->[0] =~ /^m/ and $basetype =~ /^m/ |
|
446
|
0 |
0 |
if $$rays[($dir + $next) % 8] and $$rays[($dir + $next) % 8][0] =~ /^[Dr3\WP]/ |
|
475
|
0 |
0 |
unless $rot |
|
479
|
0 |
0 |
$i ? : |
|
482
|
0 |
0 |
if ($Rot == 3) { } |
|
|
0 |
0 |
elsif ($Rot == 2) { } |
|
|
0 |
0 |
elsif ($Rot == 1) { } |
|
508
|
76 |
6 |
unless my $o = $offs[$y][$x] |
|
510
|
0 |
8 |
unless not $r->[$_] |
|
512
|
6 |
0 |
if $r |
|
524
|
4 |
4 |
unless $DEP or @rest or $remove |
|
525
|
0 |
4 |
$DEP ? : |
|
|
0 |
4 |
$DEP && !ref($DEP->[0]) ? : |
|
533
|
0 |
0 |
unless &post_inspect_ray($X, $Y, $DIR, \@rays, $type) |
|
535
|
0 |
0 |
if $KEEP |
|
537
|
0 |
0 |
unless $keep |
|
539
|
0 |
4 |
if $remove and $keep |
|
540
|
0 |
4 |
if $unignore and $keep |
|
541
|
4 |
0 |
if @rest and $keep |
|
542
|
0 |
4 |
unless $keep |
|
543
|
0 |
4 |
if ($keep and $type =~ /^[3r]/) |
|
545
|
0 |
0 |
unless $rays[$y + $dy][$x + $dx][($dir + 4) % 8][0] =~ /^([dcfs])/ |
|
546
|
0 |
0 |
unless $1 eq "s" |
|
549
|
0 |
4 |
if not $keep and $TO eq "\x{b4}" |
|
557
|
0 |
0 |
unless (@opp = grep($rhombi{join $;, $x + $dx + $dx1, $y + $dy + $dy1, ($_ + 4) % 8}, $dir, $dir1)) |
|
558
|
0 |
0 |
if $t eq "s" and $cnt[$y + $dy1][$x + $dx1] <= 4 |
|
561
|
0 |
0 |
if $t eq "s" |
|
563
|
0 |
0 |
if (not $dir % 2 and $cnt[$y][$x] == 3 and +($rays[$y][$x][($dir + 4) % 8] || $ER)->[0] eq "tail" and $cnt[$y + $dy1][$x + $dx1] == 4 and +($rays[$y + $dy1][$x + $dx1][$dir] || $ER)->[0] eq "doubleray" and +($rays[$y + $dy + $dy1][$x + $dx + $dx1][$dir] || $ER)->[0] =~ /^[dc]/) |
|
569
|
0 |
0 |
if ($cnt[$y + $dy + $dy1][$x + $dx + $dx1] == 3 and grep((!($_ % 2) && +($rays[$y + $dy + $dy1][$x + $dx + $dx1][$_] || $ER)->[0] eq 'tail'), @opp)) |
|
574
|
0 |
0 |
if $rays[$y + $g->[2]][$x + $g->[1]][($g->[0] + 4) % 8][0] eq "doubleray" |
|
576
|
0 |
0 |
if ($cnt[$y + $good->[2]][$x + $good->[1]] == 4 and $rays[$y + $good->[2]][$x + $good->[1]][($good->[0] + 4) % 8][0] eq "doubleray" and $rays[$y][$x][($good->[0] + 4) % 8][0] =~ /^[dc]/) |
|
586
|
0 |
0 |
unless $seenlong{join $;, $x, $y, $x + $dx + $dx1, $y + $dy + $dy1} |
|
601
|
0 |
4 |
if ($pp->[0] =~ /^I((I)|1)?$/) |
|
604
|
0 |
0 |
if $protect[$y][$x][$dir] or $2 and $rays[$y][$x][$dir][0] ne "?" |
|
606
|
0 |
0 |
if $1 |
|
613
|
0 |
4 |
if $pp->[0] eq "L" |
|
614
|
0 |
4 |
if ($pp->[0] =~ /^E([Ef])?(m)?$/) |
|
617
|
0 |
0 |
$T eq 'f' ? : |
|
|
0 |
0 |
$T ? : |
|
|
0 |
0 |
unless $rays[$y][$x][$dir][0] =~ ($T ? $T eq "f" ? qr/^f/ : qr/^[?P]/ : qr/^[\WP]/) |
|
623
|
0 |
4 |
if (lc $pp->[0] eq "n") |
|
626
|
0 |
0 |
unless $cnt[$y][$x] == $C and $rays[$y][$x][$dir][0] eq "?" |
|
630
|
0 |
4 |
if ($pp->[0] eq "S") |
|
632
|
0 |
0 |
unless $cnt[$y][$x] == 4 and $rays[$y][$x][$dir][0] =~ /^[?fP\264r]/ |
|
636
|
0 |
4 |
if ($pp->[0] eq "T") |
|
639
|
0 |
0 |
unless $cnt[$Y][$X] == 3 and $rays[$Y][$X][$DIR] and ($rays[$Y][$X][$DIR][0] || '') =~ /^t/ |
|
643
|
0 |
0 |
unless $cnt[$y][$x] == 1 and $rays[$y][$x][$dir] and ($rays[$y][$x][$dir][0] || '') =~ /^d/ |
|
648
|
0 |
4 |
if ($pp->[0] =~ /a/) |
|
651
|
0 |
0 |
if $t =~ /^[dctNC]/ |
|
655
|
4 |
0 |
if ($pp->[0] =~ /t/) |
|
659
|
4 |
0 |
unless $T->[0] =~ /^c/ |
|
661
|
0 |
0 |
unless $rays[$Y][$X][($DIR + $rot + 4) % 8][0] =~ /^d/ |
|
664
|
0 |
0 |
unless $cnt[$Y + $dy1][$X + $dx1] == 4 |
|
665
|
0 |
0 |
unless $rays[$Y + $dy1][$X + $dx1][($DIR + $rot + 4) % 8][0] =~ /^d/ |
|
666
|
0 |
0 |
unless $cnt[$Y + 2 * $dy1][$X + 2 * $dx1] == 3 |
|
669
|
0 |
0 |
unless +($rays[$Y + $dy1][$X + $dx1][($DIR + 2 * $rot + 4) % 8] || $ER)->[0] =~ /^e/ |
|
670
|
0 |
0 |
unless +($rays[$Y + $dy1][$X + $dx1][($DIR + 3 * $rot + 4) % 8] || $ER)->[0] =~ /^f/ |
|
673
|
0 |
0 |
unless $cnt[$Y + $dy1 + $dy2][$X + $dx1 + $dy2] == 3 |
|
674
|
0 |
0 |
unless +($rays[$Y + $dy1 + $dy2][$X + $dx1 + $dx2][($DIR + 2 * $rot) % 8] || $ER)->[0] =~ /^f/ |
|
680
|
0 |
0 |
if ($pp->[0] =~ /C/) |
|
684
|
0 |
0 |
if not $T->[0] =~ /^(c)/i or $midLong{join $;, 2 * $X + $dx, 2 * $Y + $dy} |
|
688
|
0 |
0 |
if ($opp eq 'c') { } |
|
697
|
0 |
0 |
unless $rays[$YY + $dy1][$XX + $dx1][($DD + 4) % 8][0] =~ /^([F\260])/ and $1 eq 'F' || $rays[$YY][$XX][($DD - 3 * $R) % 8][0] =~ /^C/ && ($deg_corner = 1) and $rays[$YY][$XX][$DD][0] =~ /^([cF1d])/ and not +(my $m1 = $1) eq 'd' && $rays[$YY + $dy1][$XX + $dx1][$DD][0] =~ /^d/ |
|
701
|
0 |
0 |
unless $good |
|
702
|
0 |
0 |
if $rays[$YY][$XX][$DD][0] =~ /^d/ and $rays[$YY + $dy1][$XX + $dx1][$DD][0] =~ /^a/ and $rays[$YY + $dy1][$XX + $dx1][$DD][1] == -$R |
|
706
|
0 |
0 |
if not $good and $seen =~ /F1|1F|(11)/ and $1 || !$deg_corner |
|
707
|
0 |
0 |
if $arrows == 2 |
|
713
|
0 |
0 |
if ($rev) { } |
|
714
|
0 |
0 |
unless $rays[$YY + $dy1][$XX + $dx1][($DD + 4) % 8][0] =~ /^C/ and $rays[$YY][$XX][$DD][0] =~ /^c/ and $rays[$YY][$XX][$DD][1] == $R |
|
717
|
0 |
0 |
unless $rays[$YY + $dy1][$XX + $dx1][($DD + 4) % 8][0] =~ /^\260/ and +($rays[$YY][$XX][($DD - 3 * $R) % 8] || $ER)->[0] =~ /^([1])/ and $1 ne 'C' || $rays[$YY][$XX][($DD - 3 * $R) % 8][1] == $R and $rays[$YY][$XX][$DD][0] =~ /^([cd])/ |
|
725
|
0 |
0 |
unless ($good) |
|
732
|
0 |
0 |
if ($pp->[0] eq "\x{b4}") |
|
742
|
0 |
0 |
if ($T->[0] eq 'Probable-curve') { } |
|
|
0 |
0 |
elsif ($T->[0] eq "\264" and $B == -$rays[$Y][$X][$DIR][1]) { } |
|
743
|
0 |
0 |
unless !@rem_postpone || $ray_round == 1 and $rays[$Y - $dy0][$X - $dx0][($DIR + $B) % 8][0] eq "\x{b4}" and not $nearmin[$Y + $dy][$X + $dx][($DIR + 2 * $B) % 8] && $nearmin[$Y - $dy0][$X - $dx0][($DIR + 4) % 8] |
|
753
|
0 |
0 |
unless $rays[$Y + $dy + $dy1][$X + $dx + $dx1][($DIR + 4 - $B) % 8][0] eq "\x{b4}" |
|
756
|
0 |
0 |
unless $cntmin[$Y + $dy1][$X + $dx1] <= 4 + !!$extra |
|
757
|
0 |
0 |
if $nearmin[$Y][$X][($DIR + 4 - $B) % 8] |
|
758
|
0 |
0 |
if $nearmin[$Y + $dy][$X + $dx][($DIR + $B) % 8] |
|
763
|
0 |
0 |
unless $cntmin[$Y + $dy1][$X + $dx1] <= 4 + !!$extra and $cntmin[$Y + $dy + $dy1][$X + $dx + $dx1] <= 3 and $cntmin[$Y - $B * $dx1][$X + $B * $dy1] <= 3 |
|
765
|
0 |
0 |
unless $cntmin[$Y][$X] <= 3 + !!$Ex[0] and $cntmin[$Y + $dy][$X + $dx] <= 3 + !!$Ex[1] |
|
769
|
0 |
0 |
if $cntmin[$Y - $B * $dx1][$X + $B * $dy1] < 3 |
|
771
|
0 |
0 |
if $cntmin[$Y + $dy + $dy1][$X + $dx + $dx1] < 3 |
|
772
|
0 |
0 |
if $extra |
|
776
|
0 |
0 |
$LOOP[0] ? : |
|
|
0 |
0 |
$LOOP[1] ? : |
|
783
|
0 |
0 |
$LOOP[0] ? : |
|
|
0 |
0 |
$LOOP[1] ? : |
|
796
|
0 |
0 |
if ($type eq "a") |
|
800
|
0 |
0 |
$p[1] ? : |
|
|
0 |
0 |
unless $rays[$y][$x][$dir][0] =~ /^a/ and !$p[1] || $rays[$y][$x][($dir + 4) % 8][0] eq $p[2] |
|
803
|
0 |
0 |
if ($type eq "R") |
|
807
|
2 |
0 |
unless @rem_postpone |
|
811
|
0 |
0 |
unless $SEEN[$y][$x]++ |
|
816
|
0 |
82 |
unless my $RAYS = $rays[$y][$x] |
|
817
|
76 |
6 |
unless @$RAYS |
|
819
|
8 |
0 |
unless $RAYS->[$dir][0] =~ /^(f)/i |
|
820
|
0 |
0 |
if (my $code = $1) eq "F" and $cnt[$y][$x] != 1 |
|
824
|
0 |
0 |
if $code eq "F" |
|
830
|
0 |
2 |
unless @$ER == 1 and $ER->[0] eq "" |
|
841
|
0 |
82 |
unless my $RAYS = $rays[$y][$x] |
|
842
|
76 |
6 |
unless @$RAYS |
|
843
|
6 |
0 |
unless grep {$RAYS->[$_][0] =~ /^[D\WP]/;} @{$$offs[$y][$x];} |
|
848
|
0 |
82 |
unless my $RAYS = $rays[$y][$x] |
|
849
|
76 |
6 |
unless @$RAYS |
|
850
|
0 |
6 |
unless $Simple[$y][$x] |
|
852
|
8 |
0 |
unless $RAYS->[$dir][0] =~ /^e/ |
|
863
|
0 |
82 |
unless my $RAYS = $rays[$y][$x] |
|
864
|
76 |
6 |
unless @$RAYS |
|
867
|
6 |
0 |
unless grep {$RAYS->[$_][0] =~ /^[D\WP]/;} @{$$offs[$y][$x];} |
|
870
|
0 |
0 |
if $RAYS->[$dir][0] =~ /^[D\WP]/ |
|
873
|
0 |
0 |
if +($$RAYS[($dir + $rot) % 8] || $ER)->[0] =~ /^[D\WP]/ and not $RAYS->[$dir][0] =~ /^[BE]/ |
|
883
|
0 |
82 |
unless my $RAYS = $rays[$y][$x] |
|
884
|
76 |
6 |
unless my $ok = $Simple[$y][$x] |
|
887
|
4 |
4 |
if $dir > 3 |
|
889
|
0 |
0 |
unless $ok or $smpl->[$dir] or 2 >= $cnt->[$y][$x] and $RAYS->[$dir][0] eq "\x{b0}" and ++$semi_bad |
|
893
|
0 |
0 |
unless $Simple[$y1][$x1] or $simpleray[$y1][$x1][$dir1] or 2 >= $cnt->[$y1][$x1] and $rays[$y1][$x1][$dir1][0] eq "\x{b0}" and ++$semi_bad < 2 |
|
899
|
0 |
4 |
unless 2 - $semi_bad == grep(/^[dcnstB1FMESmNCbTAaR]/, $RAYS->[$dir][0], $rays[$y1][$x1][$dir1][0]) |
|
907
|
78 |
4 |
unless $Simple[$y][$x] and ($cntedge[$y][$x] || 0) <= 1 |
|
909
|
0 |
4 |
if $cnt->[$y][$x] > 6 |
|
915
|
4 |
0 |
if $cntedge[$y][$x] |
|
918
|
4 |
0 |
if $dir != ($Neighbors[$d - 1] + 1) % 8 |
|
923
|
0 |
4 |
unless $RAYS->[$dir][0] =~ /^[dKZfIeiFMxR]/ |
|
925
|
0 |
4 |
if $RAYS->[$dir][0] =~ /^[dR]/ and not $sharp_angle |
|
927
|
0 |
0 |
if $RAYS->[$dir][0] =~ /^[FM]/ and defined $L and not $sharp_angle |
|
929
|
0 |
4 |
if $RAYS->[$dir][0] =~ /^Z/ |
|
932
|
0 |
4 |
unless my $rays1 = $rays[$y1][$x1] |
|
933
|
0 |
4 |
unless my $R = $$rays1[($dir + 4) % 8] |
|
934
|
0 |
4 |
if $RAYS->[$dir][0] =~ /^e/ and $R->[0] =~ /^d/ |
|
935
|
0 |
4 |
if $RAYS->[$dir][0] =~ /^[fK]/ and $R->[0] =~ /^d/ |
|
937
|
4 |
0 |
unless $bad |
|
941
|
0 |
4 |
if @res > 2 |
|
942
|
4 |
0 |
if ($cntedge[$y][$x]) |
|
952
|
0 |
4 |
if @res |
|
957
|
82 |
0 |
unless my $cand = $candidates_way_out{join $;, $y, $x} |
|
962
|
0 |
0 |
if ($cntedge[$y][$x]) { } |
|
966
|
0 |
0 |
if $d->[0] |
|
971
|
0 |
0 |
unless ($good) |
|
977
|
0 |
0 |
if $good |
|
979
|
0 |
0 |
if @res > 1 |
|
994
|
0 |
0 |
if $updated{join $;, $x, $y, $dir}++ or $updated{join $;, $x1, $y1, $dir1}++ |
|
1000
|
0 |
0 |
if not ref $e and $e eq "erased" |
|
1005
|
0 |
0 |
unless @atBEG or @atEND |
|
1007
|
0 |
0 |
unless (@atBEG and @atEND) |
|
1009
|
0 |
0 |
if @have == 2 |
|
1012
|
0 |
0 |
if (@atEND) { } |
|
1021
|
0 |
2 |
if $ER and @$ER != 1 || $ER->[0] ne '' |
|
1031
|
152 |
12 |
unless $pixels->[$y][$x] |
|
1032
|
0 |
12 |
unless $cntedge->[$y][$x] |
|
1037
|
2 |
2 |
if ($lastedge) |
|
1040
|
78 |
4 |
if $blob->[$y][$x] or ($cntedge->[$y][$x] || 0) != 1 |
|
1042
|
4 |
0 |
unless $$blob[$y + $dy[$D]][$x + $dx[$D]] |
|
1044
|
0 |
0 |
$D % 2 ? : |
|
1045
|
0 |
0 |
if $$blob[$y + $dy[($D + $rot) % 8]][$x + $dx[($D + $rot) % 8]] |
|
1048
|
0 |
0 |
if $dir != $D and $$blob[$y + $dy[$dir]][$x + $dx[$dir]] |
|
1050
|
0 |
0 |
if $C and not $$skip{join $;, $y, $x} |
|
1056
|
0 |
20 |
unless $blob->[$y] |
|
1058
|
164 |
0 |
unless $blob->[$y][$x] |
|
1060
|
0 |
0 |
if $$blob[$y + $dy[$dir]][$x + $dx[$dir]] |
|
1074
|
0 |
0 |
unless $edge->[$y] |
|
1076
|
0 |
0 |
unless $edge->[$y][$x] |
|
1078
|
0 |
0 |
unless $edge->[$y][$x][$dir] |
|
1081
|
0 |
0 |
if ($dir % 2) { } |
|
1085
|
0 |
0 |
$dy == $dy1 ? : |
|
1087
|
0 |
0 |
$dy == $dy1 ? : |
|
1090
|
0 |
0 |
if ($blob[$D->[0]][$D->[1]] || 0) >= 3 - ($DD == 1) |
|
1091
|
0 |
0 |
if $$pixels[$D->[0]][$D->[1]] |
|
1093
|
0 |
0 |
if $c == 3 and $C >= 2 |
|
1097
|
0 |
0 |
if $clear or $CC >= 3 and $CC[1] and $CC[0] || $CC[2] |
|
1105
|
0 |
0 |
if $neigh{$rot}[0] and $neigh{$rot}[1] |
|
1107
|
0 |
0 |
if (not $done and $cntedge->[$y][$x] == 1 and $cntedge->[$y1][$x1] == 1) |
|
1108
|
0 |
0 |
if grep((2 == $neigh{'1'}[$_] + $neigh{'-1'}[$_]), 0, 1) |
|
1109
|
0 |
0 |
if (not $done and $tot == 1) |
|
1111
|
0 |
0 |
if ($lastN) { } |
|
1116
|
0 |
0 |
if (($blob[$y + $dy][$x + $dx] || 0) >= 3 and ($blob[$y + 2 * $lastDy][$x + 2 * $lastDx] || 0) >= 3 and ($blob[$y + $dy + $lastDy][$x + $dx + $lastDx] || 0) >= 3 and not $blob[$y + $dy - $lastDy][$x + $dx - $lastDx]) |
|
1135
|
0 |
0 |
if $suspectShaft{$K} != 2 |
|
1140
|
0 |
0 |
if ($cntedge->[$y1][$x1] || 0) != 1 or $lastedge->[$y1][$x1] != $dir |
|
1158
|
78 |
4 |
unless 1 == ($cntedge->[$y][$x] || 0) and not $$inLong{join $;, $x, $y} |
|
1162
|
0 |
4 |
if $$inLong{join $;, $x1, $y1} |
|
1163
|
2 |
2 |
if ($dir < 4) |
|
1164
|
0 |
2 |
if 1 == ($cntedge->[$y1][$x1] || 0) and $lastedge->[$y1][$x1] == ($dir + 4) % 8 |
|
1168
|
0 |
0 |
if 1 == ($blob->[$y1][$x1] || 0) or not $dir & 1 and 1 == ($cntedge->[$y1][$x1] || 0) and 2 == abs(($lastedge->[$y1][$x1] - $dir) % 8 - 4) and $rays->[$y][$x][$dir][0] =~ /^([tBdcN])/ and $1 ne 'c' || ($r = $rays->[$y][$x][$dir][1]) && !$rays->[$y][$x][($dir + 4 + $r) % 8] |
|
1191
|
0 |
40 |
unless $cntedge->[$y1][$x1] |
|
1207
|
0 |
82 |
unless my $RAYS = $rays->[$y][$x] |
|
1208
|
76 |
6 |
unless @$RAYS |
|
1210
|
0 |
8 |
if ($RAYS->[$dir][0] =~ /^3/) |
|
1216
|
0 |
0 |
unless $rays->[$y1][$x1][($d + 4) % 8][0] =~ /^([PI\264Fr])/ |
|
1219
|
0 |
0 |
if ($cnt->[$y1][$x1] > 4) |
|
1221
|
0 |
0 |
unless $blobs < 2 |
|
1224
|
0 |
0 |
unless grep((!$$cnt[$y + $_ * (2 * $dy[$dir] - $dy[$d])][$x + $_ * (2 * $dx[$dir] - $dx[$d])]), -1, 1, 2) or grep((!$$cnt[$y1 + $_ * (2 * $dy[$dir] - $dy[$d])][$x1 + $_ * (2 * $dx[$dir] - $dx[$d])]), -1, 1) or grep(($cntE += !!$$rays[$y + $_ * (2 * $dy[$dir] - $dy[$d])][$x + $_ * (2 * $dx[$dir] - $dx[$d])][$D]), -1, 0, 1), grep(($cntE += !!$$rays[$y1 + $_ * (2 * $dy[$dir] - $dy[$d])][$x1 + $_ * (2 * $dx[$dir] - $dx[$d])][$D]), -1, 0), $cntE < 2 |
|
1233
|
0 |
0 |
if $Opp =~ /^[Fr]/ and $edge->[$y1][$x1][($d + 4) % 8] |
|
1234
|
0 |
0 |
if ($Opp =~ /^[Fr]/ and $$rays[$y + $dy[$dir]][$x + $dx[$dir]][($dir + (2 + $dir % 2) * $rot) % 8] and $$rays[$y + $dy[$dir]][$x + $dx[$dir]][($dir + (2 + $dir % 2) * $rot) % 8][0] =~ /^\242/) |
|
1239
|
0 |
0 |
if (($cntedge->[$y1][$x1] || 0) == 1 and ($cntedge->[$y][$x] || 0) == 1 and $edge->[$y1][$x1][$dir] and $edge->[$y][$x][($dir - $RAYS->[$dir][1] + 4) % 8]) |
|
1249
|
0 |
0 |
if ($rays->[$y1][$x1][($dir + 4) % 8][0] =~ /^F/ and $$rays[$y + $dy[$d]][$x + $dx[$d]][$dir][0] =~ /^d/) |
|
1260
|
0 |
0 |
unless $$rays2[($D + 4) % 8] and $$rays2[($D + 4) % 8][0] =~ /^d/ and $RAYS->[$D] and $RAYS->[$D][0] =~ /^(?:(d)|\?)/ |
|
1262
|
0 |
0 |
if ($1) { } |
|
1264
|
0 |
0 |
unless $rays2->[$D] and $rays2->[$D][0] =~ /$Side->[1]/ |
|
1265
|
0 |
0 |
if ($1) |
|
1267
|
0 |
0 |
unless ($cntedge->[$y2][$x2] || 0) == 3 and ($cntedge->[$y][$x] || 0) == 2 and $edge->[$y2][$x2][($d - 2 * $RAYS->[$dir][1]) % 8] and grep $edge->[$y][$x][($_ + 4) % 8], $d, $D |
|
1271
|
0 |
0 |
if $rays2->[$D] |
|
1276
|
0 |
0 |
$cont ? : |
|
1277
|
0 |
0 |
if $edge->[$y][$x][$D] |
|
1280
|
0 |
0 |
unless $converted |
|
1288
|
0 |
0 |
unless $toClear2{join $;, $x + $x1, $y + $y1}++ |
|
1292
|
0 |
0 |
if $$seenlong{join $;, $x, $y, $x1, $y1} |
|
1303
|
0 |
82 |
unless my $RAYS = $rays->[$y][$x] |
|
1304
|
76 |
6 |
unless @$RAYS |
|
1306
|
0 |
0 |
if $dir > 3 |
|
1310
|
0 |
0 |
unless $rays->[$y1][$x1][$dir1][0] =~ /^([\264])/ |
|
1311
|
0 |
0 |
if $cnt->[$y][$x] + $cnt->[$y1][$x1] > 8 |
|
1312
|
0 |
0 |
if grep((($cntBlobby[$_->[1]][$_->[0]] || 0) > 3), [$x, $y], [$x1, $y1]) |
|
1314
|
0 |
0 |
if grep((!$$cntedge[$_->[1]][$_->[0]] && ($cntBlobby[$_->[1]][$_->[0]] || 0) > 1 + ($cX == 2)), [$x, $y], [$x1, $y1]) |
|
1317
|
0 |
0 |
unless $rays->[$y1][$x1][$dir1][1] == -$rot |
|
1320
|
0 |
0 |
if 2 == $cXX and not $in && !$$cntedge[$y + $dy[$d]][$x + $dx[$d]] && $$cnt[$y + $dy[$d]][$x + $dx[$d]] < 6 |
|
1323
|
0 |
0 |
$opp ? : |
|
1325
|
0 |
0 |
if $cnt->[$y][$x] - !!$in - !!$out > 2 |
|
1327
|
0 |
0 |
if $rays->[$y][$x][$D] and not $edge->[$y][$x][$D] |
|
1338
|
0 |
164 |
unless my $RAYS = $rays->[$y][$x] |
|
1339
|
152 |
12 |
unless @$RAYS |
|
1344
|
0 |
0 |
unless $rays->[$y1][$x1][$dir1][0] =~ /^([dc\260])/ and not $edge->[$y][$x][$dir] |
|
1351
|
0 |
0 |
$dir % 2 ? : |
|
1357
|
0 |
0 |
unless $$rays[$P->[1]][$P->[0]][$dir2] |
|
1365
|
0 |
0 |
if !$$cntedge[$P->[1]][$P->[0]] || $$cnt[$P->[1]][$P->[0]] + !$back > 5 and !$cntedge->[$y2][$x2] && (($cntBlobby[$y2][$x2] || 0) > 2 || $cntBlobby[$y2][$x2] && $cnt->[$y2][$x2] > 5) || ($cntBlobby[$y2][$x2] || 0) > 2 && $cnt->[$y2][$x2] > 5 |
|
1369
|
0 |
0 |
if not $$cntedge[$P->[1]][$P->[0]] || $cntedge->[$y2][$x2] and $cnt->[$y2][$x2] < 5 |
|
1373
|
0 |
0 |
if $bad00 and $badD > 1 or $blobby or $smallBlobby and $badD >= 2 |
|
1377
|
0 |
0 |
if $inBlob and $qRound |
|
1379
|
0 |
0 |
if grep(($rays->[$y][$x][($dir + $_) % 8] && $rays->[$y][$x][($dir + $_) % 8][0] =~ /^A/), 2, -2) |
|
1380
|
0 |
0 |
if ($qRound) { } |
|
1383
|
0 |
0 |
if grep(($questEdges[$y1][$x1][($dir1 + $_) % 8] || $questEdges[$y][$x][($dir + $_) % 8]), 1, -1) or $dblCoordEdges[$y + $y1][$x + $x1] > 1 or $$midLong{join $;, $x + $x1, $y + $y1} |
|
1400
|
0 |
0 |
unless $outType[$y][$x][($dir + 2 * $D) % 8] |
|
1401
|
0 |
0 |
unless $edge->[$y1][$x1][($dir + $D) % 8] and not $outCont[$y][$x][($dir + 2 * $D) % 8][1 + $D] |
|
1403
|
0 |
0 |
if $compete |
|
1432
|
0 |
82 |
unless my $RAYS = $rays->[$y][$x] |
|
1433
|
76 |
6 |
unless @$RAYS |
|
1435
|
0 |
8 |
if ($RAYS->[$dir][0] =~ /^\260/) |
|
1444
|
0 |
0 |
unless $r and $r->[0] =~ /^[4x2]/ |
|
1445
|
0 |
0 |
unless grep $edge->[$y2][$x2][($dir + $rot * $_) % 8], -1..2 |
|
1446
|
0 |
0 |
if 1 == ($cntedge->[$y1][$x1] || 0) and grep $edge->[$y1][$x1][($dir - $rot * $_) % 8], 0, 1, 2 |
|
1454
|
0 |
0 |
if @rot = grep($edge->[$y][$x][($dir1 + $_) % 8], 0, -1, 1) or @rot = grep($$midLong{join $;, 2 * $x + $dx[$dir1] + $dx[($dir1 + $_) % 8], 2 * $y + $dy[$dir1] + $dy[($dir1 + $_) % 8]}, -1, 1) or not $dir % 2 and 2 == grep($edge->[$y][$x][($dir + $_) % 8], -2, 2) || !$cntedge->[$y][$x] && 2 == grep($$edge[2 * $y - $y1][2 * $x - $x1][($dir + $_) % 8], -2, 2) && !grep($$edge[2 * $y - $y1][2 * $x - $x1][($dir + $_) % 8], 1, 0, -1) && push(@cont, [$x, $y, $dir1, 2 * $x - $x1, 2 * $y - $y1]) |
|
1460
|
0 |
0 |
if (not $cntedge->[$y][$x] and 1 == ($cntBlobby->[$y][$x] || 0)) |
|
1462
|
0 |
0 |
unless @rot = grep(($D == ($dir1 + $_) % 8), -1, 0, 1) |
|
1467
|
0 |
0 |
if 1 == ($cntBlobby->[$y2][$x2] || 0) and !$$midLong{join $;, $x + $x2, $y + $y2} || $cnt->[$y2][$x2] == 3 |
|
1475
|
0 |
0 |
unless 1 == (($rot, my $junk) = grep(defined($_), @out)) and $rot |
|
1478
|
0 |
0 |
unless $out[0] |
|
1483
|
0 |
0 |
if $edge->[$y2][$x2] and $edge->[$y2][$x2][$dir] and not grep($edge->[$y2][$x2][($dir + $_) % 8], 4) |
|
1488
|
0 |
0 |
unless not $edge->[$y][$x][$dir] and $rays->[$y1][$x1][$dir1][0] =~ /^([cdfF])/ and $Opp = $1 and not grep($edge->[$y][$x][($dir + $_) % 8], -1, 1) and not grep($edge->[$y1][$x1][($dir1 + $_) % 8], -1, 1) and 2 + !$cntedge->[$y1][$x1] > ($cntBlobby->[$y][$x] || 0) and 2 + !$cntedge->[$y][$x] > ($cntBlobby->[$y1][$x1] || 0) and not grep(($rays->[$y][$x][($dir + $_) % 8] && ($rays->[$y][$x][($dir + $_) % 8][0] || '') =~ /^[4x2]/ && !&$goodNearLong($x, $y, $dir, $_, $x1, $y1)), -1, 1) and not grep(($rays->[$y1][$x1][($dir1 + $_) % 8] && ($rays->[$y1][$x1][($dir1 + $_) % 8][0] || '') =~ /^[4x2]/ && !&$goodNearLong($x1, $y1, $dir1, $_, $x, $y)), -1, 1) |
|
1515
|
0 |
0 |
if not defined $out and $c = grep(("f" ne ($candDegree{join $;, $x, $y, ($dir1 + $_) % 8} || 'f')), -1, 0, 1) and $c != 2 |
|
1516
|
0 |
0 |
if not defined $out1 and $c = grep(("f" ne ($candDegree{join $;, $x1, $y1, ($dir + $_) % 8} || 'f')), -1, 0, 1) and $c != 2 |
|
1517
|
0 |
0 |
unless defined $out and defined $out1 |
|
1530
|
0 |
0 |
if not ref $e and $e eq "erased" |
|
1537
|
0 |
0 |
unless (@atBEG or @atEND) |
|
1539
|
0 |
0 |
unless 1 == @DIR |
|
1557
|
5 |
6 |
unless $edge->[$y] |
|
1560
|
40 |
0 |
unless $edge->[$y][$x][$dir] and $rays->[$y][$x][$dir][0] eq "Tail" |
|
1564
|
0 |
0 |
unless $rays->[$Y][$X][$DIR][0] eq "MFork" |
|
1570
|
0 |
0 |
unless $cnt->[$y][$x] == 3 and $cntedge->[$y][$x] < 3 |
|
1575
|
0 |
0 |
if ($$cntedge[$y + $dy[$d]][$x + $dx[$d]] || 0) != 1 + !!$edge->[$y][$x][$d] |
|
1576
|
0 |
0 |
$edge->[$y][$x][$d] ? : |
|
1580
|
0 |
0 |
if 1 < abs $b |
|
1582
|
0 |
0 |
if $b and grep $$edge[$y + $dy[$d] + $dy[$l]][$x + $dx[$d] + $dx[$l]][($l + $_ * $d0) % 8], 1, 2 |
|
1586
|
0 |
0 |
if (@bends == 2 and 2 == grep($_->[3], @bends) and 1 == (my(@O) = grep(($_->[2] == 1), @bends)) and not grep(($_->[2] == -1), @bends)) { } |
|
1595
|
0 |
0 |
unless $edge->[$y][$x][$d] |
|
1615
|
2 |
4 |
unless $cnt->[$y][$x] and ($cntedge->[$y][$x] || 0) <= 1 and not $$inLong{join $;, $x, $y} |
|
1618
|
0 |
4 |
if $cnt->[$y][$x] + ($cntBlobby->[$y][$x] || 0) > 6 |
|
1620
|
4 |
0 |
$cntedge->[$y][$x] ? : |
|
1621
|
4 |
0 |
if 1 + ($L != 100) > (my(@Neighbors) = @{$offs->[$y][$x];}) |
|
1630
|
0 |
0 |
if (not $cntedge->[$y][$x]) { } |
|
1632
|
0 |
0 |
unless $e == $#Neighbors and $e == 2 and not grep((!$$cntedge[$y + $dy[$_]][$x + $dx[$_]]), @Neighbors) |
|
1637
|
0 |
0 |
unless $e == $#Neighbors |
|
1638
|
0 |
0 |
if (grep(($_ == $L), @Neighbors[0 .. $e1])) { } |
|
1643
|
0 |
0 |
if @Neighbors > 3 or grep((!$$cntedge[$y + $dy[$_]][$x + $dx[$_]]), @Neighbors) and @Neighbors > 1 || grep($$near[$y + $dy[$Neighbors[0]]][$x + $dx[$Neighbors[0]]][($Neighbors[0] + $_) % 8], 2, 3, -2, -3) |
|
1653
|
0 |
0 |
if (@cont >= 2) { } |
|
|
0 |
0 |
elsif (@cont) { } |
|
1654
|
0 |
0 |
if @cont > 2 or @Neighbors > 2 or grep(($$cnt[$y + $dy[$_]][$x + $dx[$_]] > 4), @Neighbors) or $L < 8 and grep((1 < abs(($L - $_) % 8 - 4)), @cont) |
|
1659
|
0 |
0 |
if (@Neighbors == 3) { } |
|
|
0 |
0 |
elsif (@Neighbors == 2) { } |
|
|
0 |
0 |
elsif (@Neighbors == 1) { } |
|
1660
|
0 |
0 |
if $mid % 2 or grep((!$$edge[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8]), 2, -2) |
|
1661
|
0 |
0 |
unless $mid == $cont[0] and $L > 7 || 2 > abs(($L - $cont[0]) % 8 - 4) or ($cont[0] + 4) % 8 == $L |
|
1664
|
0 |
0 |
if $ang and $ang > 1 || $near->[$y][$x][($L + 4) % 8] |
|
1668
|
0 |
0 |
if $L < 8 and 1 < abs(($L - $cont[0]) % 8 - 4) |
|
1672
|
0 |
0 |
if (@Neighbors == 3) { } |
|
|
0 |
0 |
elsif (@Neighbors == 2) { } |
|
|
0 |
0 |
elsif (@Neighbors == 1) { } |
|
1674
|
0 |
0 |
if $mid % 2 or grep((!$$edge[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8]), 2, -2) |
|
1675
|
0 |
0 |
$L > 7 ? : |
|
1683
|
0 |
0 |
if ($mid % 2) { } |
|
1687
|
0 |
0 |
if grep((!$$edge[$y + $dy[$mid]][$x + $dx[$mid]][$_]), @ed) |
|
1691
|
0 |
0 |
if grep((abs(($_ + 4 - $mid) % 8 - 4) > 1), @NN) and not @ed && ($L > 7 || abs(($L - $mid) % 8 - 4) < 2) && $cnt->[$y][$x] < 3 |
|
1698
|
0 |
0 |
if grep((!$$edge[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8]), 2, -2) and not grep($$edge[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8], 2, -2) && !grep(($$near[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8] && !$$edge[$y + $dy[$mid]][$x + $dx[$mid]][($mid + $_) % 8]), 2, -2) |
|
1705
|
0 |
0 |
if $L < 8 and 2 > abs(($L - $Neighbors[0]) % 8 - 4) |
|
1873
|
0 |
0 |
if 1 >= @$CC and not $green_at_left || $green_at_right |
|
1875
|
0 |
0 |
if ($green_at_left) { } |
|
1877
|
0 |
0 |
if ($green_at_right) { } |
|
1880
|
0 |
0 |
unless (@jumps) |
|
1881
|
0 |
0 |
if ($green_at_left or $green_at_right) { } |
|
1883
|
0 |
0 |
$green_at_left ? : |
|
1886
|
0 |
0 |
if ($extended->{'0'} and $CC->[0] < $CC->[1] - 1) { } |
|
|
0 |
0 |
elsif ($extended->{'0'} and $CC->[0] == $CC->[1] - 1) { } |
|
1891
|
0 |
0 |
if ($CC->[0] + $addHalf == $CC->[1]) { } |
|
|
0 |
0 |
elsif ($CC->[0] < $CC->[1]) { } |
|
1915
|
0 |
0 |
if (int $slope_min != int $slope_max) { } |
|
|
0 |
0 |
elsif (%$extended) { } |
|
1922
|
0 |
0 |
if $H <= $_ |
|
|
0 |
0 |
unless @ok = grep({$H + !!$add >= $_ if $H <= $_;} @ok) |
|
1936
|
0 |
0 |
if $cur[0] > $H + $add |
|
1937
|
0 |
0 |
if $#cur and $cur[1] > $H + $add |
|
1938
|
0 |
0 |
if $H <= $_ |
|
|
0 |
0 |
unless @cur = grep({$H + $add >= $_ if $H <= $_;} @cur) |
|
1947
|
0 |
0 |
if $jU[$n] |
|
1948
|
0 |
0 |
if $jD[$n] |
|
1952
|
0 |
0 |
if 2 + !!$U + !!$D < keys %seen |
|
1957
|
0 |
0 |
if @JUMPS > 1 and $max - $min > 1 + !!$U + !!$D |
|
1959
|
0 |
0 |
if ($min_can_U) |
|
1960
|
0 |
0 |
if $jumps[$_] == $min |
|
|
0 |
0 |
if grep {$jumps[$_ + 1] == $min if $jumps[$_] == $min;} 0 .. $#jumps - 1 |
|
1962
|
0 |
0 |
if ($max_can_D) |
|
1963
|
0 |
0 |
if $jumps[$_] == $max |
|
|
0 |
0 |
if grep {$jumps[$_ + 1] == $max if $jumps[$_] == $max;} 0 .. $#jumps - 1 |
|
1966
|
0 |
0 |
if not $green_at_left and (my $l_O = $CC->[0] - $min - 1) > 0 or not $green_at_right and (my $r_O = $CC->[-1] - $min - 1) > 0 |
|
1971
|
0 |
0 |
if $j == $min |
|
1974
|
0 |
0 |
unless my($sl, $sh) = &encodes_line(\@rect, !($green_at_left || $l_O), !($green_at_right || $r_O)) |
|
1980
|
0 |
0 |
$green_at_left ? : |
|
1990
|
0 |
0 |
unless 2 >= (my(@D) = keys %seen) |
|
1991
|
0 |
0 |
if (@D == 1) |
|
1997
|
0 |
0 |
unless 1 >= (my(@DD) = keys %dup) |
|
1998
|
0 |
0 |
@DD ? : |
|
2001
|
0 |
0 |
if $dir == 7 and not $D[0] * $D[1] |
|
2003
|
0 |
0 |
if ($sep % 2 and $seen{$sep} and $seen{$sep} <= 2 and @d > 2 and $seen{$sep} == (my(@eSEP) = grep(($d[$_] == $sep), 0, -1))) |
|
2005
|
0 |
0 |
if @eSEP <= 1 |
|
2010
|
0 |
0 |
if ($d[$i] == $sep) { } |
|
2020
|
0 |
0 |
unless my($slope, $offset) = &encodes_line(\@col) |
|
2025
|
0 |
0 |
if $dup % 2 |
|
2041
|
0 |
0 |
unless my $r = ($edges->[$i][0] - $$edges[$i - 1][0]) % 8 |
|
2045
|
0 |
0 |
if $r == $last_r |
|
2052
|
0 |
0 |
if ($runs[$j] - $runs[$j - 1] > 1) { } |
|
|
0 |
0 |
elsif (++$last_snake != $j) { } |
|
2053
|
0 |
0 |
if $parts[-1] and $parts[-1][1] |
|
2061
|
0 |
0 |
if $parts[-1][1] |
|
2069
|
0 |
0 |
if ($part->[0]) { } |
|
2101
|
0 |
0 |
unless $donext++ |
|
2105
|
0 |
0 |
unless my $snake = $part->[1] |
|
2111
|
0 |
0 |
if ($line) |
|
2114
|
0 |
0 |
if $J |
|
2115
|
0 |
0 |
unless $j == $#parts |
|
2120
|
0 |
0 |
unless $b |
|
2121
|
0 |
0 |
if $e == $edges->$#* |
|
2122
|
0 |
0 |
if $b == $b1 and $e == $e1 |
|
2124
|
0 |
0 |
unless (($line) = &stroke_2_line(\@S)) |
|
2126
|
0 |
0 |
unless $J |
|
2133
|
0 |
0 |
if ($b == $b1) { } |
|
2134
|
0 |
0 |
if $J |
|
2138
|
0 |
0 |
if ($e == $e1) { } |
|
2139
|
0 |
0 |
unless $j == $#parts |
|
2154
|
0 |
0 |
if ($opp) { } |
|
2162
|
0 |
0 |
unless $endEq * $stEq < 0 |
|
2164
|
0 |
0 |
if $opp |
|
2166
|
0 |
0 |
if $new > ($frac + 1) / 2 |
|
2168
|
0 |
0 |
if $opp |
|
2181
|
2 |
2 |
if ($i == $#d or abs(($d[$i + 1] - $d[$i]) % 8 - 4) <= 2) |
|
2183
|
0 |
2 |
if (@SS <= 1) { } |
|
|
2 |
0 |
elsif (2 == @SS) { } |
|
|
0 |
0 |
elsif (my($Line) = &stroke_2_line(\@SS)) { } |
|
2199
|
4 |
0 |
unless my $line = $part->[2] |
|
2201
|
0 |
0 |
if $prev_corner != $corners[-1][0] |
|
2204
|
0 |
0 |
if $part->[0] == $part->[1] |
|
2213
|
2 |
0 |
unless $corners[-1][0] == $#d + 1 |
|
2221
|
0 |
2 |
if ($corners[$i][1]) |
|
2223
|
0 |
0 |
unless $i || $closed and $corners[$i - 1][1] |
|
2224
|
0 |
0 |
$corners[$i][2] ? : |
|
2226
|
0 |
0 |
unless grep(($move_start->[$_] != $my_move_start->[$_]), 0, 1) |
|
2228
|
0 |
0 |
unless my $cross_prev = &crosses_line($corners[$i - 1][1], $corners[$i][1], Deparse error: Can't locate object method "object_2svref" via package "B::SPECIAL" at /usr/local/lib/perl5/5.42.0/B/Deparse.pm line 5762.
, $extend_tip) |
|
2229
|
0 |
0 |
unless my $cross_our = &crosses_line($corners[$i][1], $corners[$i - 1][1], "opp", $extend_tip) |
|
2247
|
2 |
0 |
unless $move_start or $move_end |
|
2250
|
0 |
0 |
$move_start ? : |
|
|
0 |
0 |
$move_end ? : |
|
2251
|
0 |
0 |
if @do == 2 and not $do[1] |
|
2254
|
0 |
0 |
$move_start && !$seg ? : |
|
2255
|
0 |
0 |
$move_end && $seg == $len - 1 ? : |
|
2257
|
0 |
0 |
unless defined $dir |
|
2260
|
0 |
0 |
if ($seg) { } |
|
2265
|
0 |
0 |
unless $kill |
|
2267
|
0 |
0 |
if $i |
|
2268
|
0 |
0 |
if $corners[$i + 1] |
|
2279
|
0 |
0 |
if $corners[$i][3] or $corners[$i + 1][2] |
|
2295
|
0 |
0 |
if ($blob->[$y1][$x1]) { } |
|
|
0 |
0 |
elsif ($$blob[$y + $dy][$x + $dx]) { } |
|
2303
|
0 |
0 |
if $nextEdge->[$dir][$y][$x] |
|
2311
|
0 |
0 |
if $nextEdge->[$dir][$y][$x] |
|
2321
|
0 |
0 |
if ($blob->[$y1][$x1]) { } |
|
|
0 |
0 |
elsif ($$blob[$y + $dy][$x + $dx]) { } |
|
2336
|
0 |
0 |
if ($nextEdge->[$dir][$y][$x]) |
|
2337
|
0 |
0 |
if @$p |
|
2338
|
0 |
0 |
unless @$p |
|
2352
|
0 |
4 |
if $$traversedEdges{join $;, $x, $y, $dir}++ and not $x1 == $X && $y1 == $Y |
|
2355
|
2 |
2 |
unless defined(my $n = $nextEdge->[$y][$x][$dir]) |
|
2357
|
0 |
2 |
if (my $tip = $$tips{join $;, $x1, $y1}) |
|
2374
|
0 |
2 |
$endstip ? : |
|
2383
|
5 |
6 |
unless $edge->[$y] |
|
2385
|
39 |
0 |
unless $edge->[$y][$x] and my $t = $$tailEdge{join $;, $x, $y} |
|
2387
|
0 |
0 |
unless 3 == $cntedge->[$y][$x] |
|
2398
|
5 |
6 |
unless $edge->[$y] |
|
2400
|
0 |
39 |
unless $edge->[$y][$x] |
|
2402
|
32 |
8 |
unless $edge->[$y][$x][$dir] |
|
2406
|
4 |
4 |
if ($cntedge->[$y1][$x1] == 2) { } |
|
|
0 |
4 |
elsif ($$tailEdge{join $;, $x, $y}) { } |
|
|
0 |
4 |
elsif ($$tailEdge{join $;, $x1, $y1}) { } |
|
2425
|
2 |
2 |
if $seenEndEdge{join $;, $x, $y, $dir}++ |
|
2429
|
0 |
2 |
if ($closed) |
|
2432
|
0 |
0 |
unless abs(($stroke->[$i][0] - $$stroke[$i - 1][0] + 4) % 8 - 4) < 2 |
|
2437
|
0 |
2 |
if ($closed < 0) { } |
|
2458
|
8 |
0 |
if $traversedEdges{join $;, $x, $y, $dir} |
|
2459
|
0 |
0 |
if ($T) |
|
2460
|
0 |
0 |
$rot == 1 ? : |
|
2463
|
0 |
0 |
$rot == -1 ? : |
|
2474
|
82 |
0 |
unless !$blob->[$y][$x] == $inner |
|
2477
|
0 |
0 |
$inner ? : |
|
2478
|
0 |
0 |
if $nextEdgeBlob[$dir][$y][$blobX] |
|
2479
|
0 |
0 |
if ($coarse_blobs) { } |
|
2490
|
0 |
0 |
if @$stroke == 1 and not defined $stroke->[0][0] |
|
2496
|
0 |
0 |
if abs(($d - $prevd) % 8 - 4) <= 2 |
|
2498
|
0 |
0 |
if $i > $stroke->$#* |
|
2499
|
0 |
0 |
if $i |
|
2501
|
0 |
0 |
if ($corner == 0) { } |
|
2511
|
0 |
0 |
if not ref $e and $e eq "erased" |