Solve the no connection puzzle: Difference between revisions

Updated D entry
(Added XPL0 example (which now runs on the Raspberry Pi))
(Updated D entry)
Line 272:
 
=={{header|D}}==
<lang d>void main() @safe {
import std.stdio, std.math, std.algorithm, std.traits, std.string;
 
enum Peg { A, B, C, D, E, F, G, H }
// immutable Peg[2][$] connections =
immutable Peg[2][15] connections =
[[Peg.A, Peg.C], [Peg.A, Peg.D], [Peg.A, Peg.E],
[Peg.B, Peg.D], [Peg.B, Peg.E], [Peg.B, Peg.F],
Line 294 ⟶ 295:
G H";
 
auto// Peg[$] perm = [EnumMembers!Peg]; // Peg[8]
Peg[EnumMembers!Peg.length] perm = [EnumMembers!Peg];
do if (connections[].all!(con => abs(perm[con[0]] - perm[con[1]]) > 1))
return board.tr("ABCDEFGH", "%(%d%)".format(perm)).writeln;
while (perm[].nextPermutation);
}</lang>
{{out}}