24 game/Solve: Difference between revisions
Content added Content deleted
(→{{header|Picat}}: Added tags + removed space) |
|||
Line 6,214: | Line 6,214: | ||
=={{header|Picat}}== |
=={{header|Picat}}== |
||
<lang Picat> |
|||
main => |
|||
foreach (_ in 1..10) |
|||
Nums = [D : _ in 1..4, D = random() mod 9 + 1], |
|||
NumExps = [(D,D) : D in Nums], |
|||
println(Nums), |
|||
(solve(NumExps) -> true; println("No solution")), |
|||
nl |
|||
end. |
|||
solve([(Num,Exp)]), Num =:= 24 => |
|||
println(Exp). |
|||
solve(NumExps) => |
|||
select((Num1,Exp1),NumExps,NumExps1), |
|||
select((Num2,Exp2),NumExps1,NumExps2), |
|||
member(Op, ['+','-','*','/']), |
|||
(Op == '/' -> Num2 =\= 0; true), |
|||
Num3 = apply(Op,Num1,Num2), |
|||
Exp3 =.. [Op,Exp1,Exp2], |
|||
solve([(Num3,Exp3)|NumExps2]). |
|||
</lang> |
|||
{{trans|Raku}} |
{{trans|Raku}} |
||
<lang Picat>import util. |
<lang Picat>import util. |