Solve the no connection puzzle: Difference between revisions
Content added Content deleted
(Added XPL0 example (which now runs on the Raspberry Pi)) |
|||
Line 1,014: | Line 1,014: | ||
2 8 1 7 |
2 8 1 7 |
||
6 4 |
6 4 |
||
</pre> |
|||
=={{header|XPL0}}== |
|||
<lang XPL0>include c:\cxpl\codes; |
|||
int Hole, Max, I; |
|||
char Box(8), Str; |
|||
def A, B, C, D, E, F, G, H; |
|||
[for Hole:= 0 to 7 do Box(Hole):= Hole+1; |
|||
Max:= 7; |
|||
while abs(Box(D)-Box(A)) < 2 or abs(Box(D)-Box(C)) < 2 or |
|||
abs(Box(D)-Box(G)) < 2 or abs(Box(D)-Box(E)) < 2 or |
|||
abs(Box(A)-Box(C)) < 2 or abs(Box(C)-Box(G)) < 2 or |
|||
abs(Box(G)-Box(E)) < 2 or abs(Box(E)-Box(A)) < 2 or |
|||
abs(Box(E)-Box(B)) < 2 or abs(Box(E)-Box(H)) < 2 or |
|||
abs(Box(E)-Box(F)) < 2 or abs(Box(B)-Box(D)) < 2 or |
|||
abs(Box(D)-Box(H)) < 2 or abs(Box(H)-Box(F)) < 2 or |
|||
abs(Box(F)-Box(B)) < 2 do |
|||
loop [I:= Box(0); \next permutation |
|||
for Hole:= 0 to Max-1 do Box(Hole):= Box(Hole+1); |
|||
Box(Max):= I; |
|||
if I # Max+1 then [Max:= 7; quit] |
|||
else Max:= Max-1]; |
|||
Str:= " |
|||
# # |
|||
/|\ /|\ |
|||
/ | X | \ |
|||
/ |/ \| \ |
|||
# - # - # - # |
|||
\ |\ /| / |
|||
\ | X | / |
|||
\|/ \|/ |
|||
# # |
|||
"; |
|||
Hole:= 0; I:= 0; |
|||
repeat if Str(I)=^# then [Str(I):= Box(Hole)+^0; Hole:= Hole+1]; |
|||
I:= I+1; |
|||
until Hole = 8; |
|||
Text(0, Str); |
|||
]</lang> |
|||
{{out}} |
|||
<pre> |
|||
5 6 |
|||
/|\ /|\ |
|||
/ | X | \ |
|||
/ |/ \| \ |
|||
7 - 1 - 8 - 2 |
|||
\ |\ /| / |
|||
\ | X | / |
|||
\|/ \|/ |
|||
3 4 |
|||
</pre> |
</pre> |
||