Intersecting number wheels: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) m (→{{header|11l}}: Indented multi-line string literals) |
Alpha bravo (talk | contribs) (Added AutoHotkey) |
||
Line 191: | Line 191: | ||
</pre> |
</pre> |
||
=={{header|AutoHotkey}}== |
|||
<lang AutoHotkey>obj1 := {"A":[1, 2, 3]} |
|||
obj2 := {"A":[1, "B", 2] , "B":[3, 4]} |
|||
obj3 := {"A":[1, "D", "D"] , "D":[6, 7, 8]} |
|||
obj4 := {"A":[1, "B", "C"] , "B":[3, 4] , "C":[5, "B"]} |
|||
loop 4 |
|||
{ |
|||
str := "" |
|||
for k, v in obj%A_Index% { |
|||
str .= "{" k " : " |
|||
for i, t in v |
|||
str .= t "," |
|||
str := Trim(str, ",") "}, " |
|||
} |
|||
str := Trim(str, ", ") |
|||
x := INW(obj%A_Index%) |
|||
result .= str "`n" x.1 "`n" x.2 "`n------`n" |
|||
} |
|||
MsgBox % result |
|||
return |
|||
INW(obj, num:=20){ |
|||
sets := [], ptr := [] |
|||
for k, v in obj { |
|||
if A_Index=1 |
|||
s := k, s1 := k |
|||
%k% := v, sets.Push(k), ptr[k] := 0 |
|||
} |
|||
loop % num { |
|||
ptr[s]++ |
|||
while !((v := %s%[ptr[s]]) ~= "\d") { |
|||
s := %s%[ptr[s]] |
|||
ptr[s]++ |
|||
} |
|||
key .= s "." ptr[s] ", " |
|||
result .= %s%[ptr[s]] " " |
|||
s := s1 |
|||
for i, set in sets |
|||
ptr[set] := ptr[set] = %set%.count() ? 0 : ptr[set] |
|||
} |
|||
return [key, result] |
|||
}</lang> |
|||
{{out}} |
|||
<pre>{A : 1,2,3} |
|||
A.1, A.2, A.3, A.1, A.2, A.3, A.1, A.2, A.3, A.1, A.2, A.3, A.1, A.2, A.3, A.1, A.2, A.3, A.1, A.2, |
|||
1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 |
|||
------ |
|||
{A : 1,B,2}, {B : 3,4} |
|||
A.1, B.1, A.3, A.1, B.2, A.3, A.1, B.1, A.3, A.1, B.2, A.3, A.1, B.1, A.3, A.1, B.2, A.3, A.1, B.1, |
|||
1 3 2 1 4 2 1 3 2 1 4 2 1 3 2 1 4 2 1 3 |
|||
------ |
|||
{A : 1,D,D}, {D : 6,7,8} |
|||
A.1, D.1, D.2, A.1, D.3, D.1, A.1, D.2, D.3, A.1, D.1, D.2, A.1, D.3, D.1, A.1, D.2, D.3, A.1, D.1, |
|||
1 6 7 1 8 6 1 7 8 1 6 7 1 8 6 1 7 8 1 6 |
|||
------ |
|||
{A : 1,B,C}, {B : 3,4}, {C : 5,B} |
|||
A.1, B.1, C.1, A.1, B.2, B.1, A.1, B.2, C.1, A.1, B.1, B.2, A.1, B.1, C.1, A.1, B.2, B.1, A.1, B.2, |
|||
1 3 5 1 4 3 1 4 5 1 3 4 1 3 5 1 4 3 1 4 |
|||
------</pre> |
|||
=={{header|C}}== |
=={{header|C}}== |