24 game/Solve: Difference between revisions

Content added Content deleted
(→‎{{header|jq}}: more concise)
m (→‎No EVAL: use atomicint to make concurrency safe)
Line 4,906: Line 4,906:
my $batch = ceiling +@perms/4;
my $batch = ceiling +@perms/4;


my atomicint $i;
@perms.race(:batch($batch)).map: -> @p {
@perms.race(:batch($batch)).map: -> @p {
for @ops -> @o {
for @ops -> @o {
for @order -> @r {
for @order -> @r {
my $result = evaluate(@p, @o, @r);
my $result = evaluate(@p, @o, @r);
@sol.push: $result[1] if $result[0] and $result[0] == $goal;
@sol[$i⚛++] = $result[1] if $result[0] and $result[0] == $goal;
}
}
}
}