Mayan numerals: Difference between revisions
Content added Content deleted
Alpha bravo (talk | contribs) (Added AutoHotkey) |
|||
Line 796: | Line 796: | ||
|style="width:3em;vertical-align:bottom;"|Θ |
|style="width:3em;vertical-align:bottom;"|Θ |
||
|} |
|} |
||
=={{header|AutoHotkey}}== |
|||
<lang AutoHotkey>MayanNumerals(num){ |
|||
pwr:=1, obj:=[], grid:=[] |
|||
while (num // 20**pwr) |
|||
pwr++ |
|||
while --pwr |
|||
{ |
|||
obj.Push(num // 20**pwr) |
|||
num := Mod(num, 20**pwr) |
|||
} |
|||
obj.Push(num) |
|||
cols := obj.count() |
|||
loop % cols |
|||
{ |
|||
c := A_Index |
|||
loop 4 |
|||
grid[c, A_Index] := " " |
|||
grid[c, 4] := " Θ " |
|||
} |
|||
for i, v in obj |
|||
{ |
|||
j := 5 |
|||
loop % v//5 |
|||
{ |
|||
j := 5 - A_Index |
|||
grid[i, j] := "————" |
|||
} |
|||
rem := "" |
|||
loop % Mod(v, 5) |
|||
rem .= "●" |
|||
rem := rem = "●" ? " ● " : rem = "●●" ? " ●● " : rem = "●●●" ? "●●● " : rem |
|||
if Mod(v, 5) |
|||
grid[i, j-1] := rem |
|||
} |
|||
return grid2table(grid, cols) |
|||
} |
|||
grid2table(grid, cols){ |
|||
loop, % cols-1 |
|||
topRow .= "════╦", bottomRow .= "════╩" |
|||
topRow := "╔" topRow "════╗" |
|||
bottomRow := "╚" bottomRow "════╝" |
|||
loop % 4 |
|||
{ |
|||
r := A_Index |
|||
loop % cols |
|||
result .= "║" grid[A_Index, r] |
|||
result .= "║`n" |
|||
} |
|||
result := topRow "`n" result . bottomRow |
|||
return % result |
|||
}</lang> |
|||
Examples:<lang AutoHotkey>for i, n in [4005, 8017, 326205, 886205, 194481] |
|||
{ |
|||
x := MayanNumerals(n) |
|||
Gui, Font, S12, Consolas |
|||
Gui, Add, Text, , % n |
|||
Gui, Add, Text, y+0, % x |
|||
Gui, Show, y100 |
|||
MsgBox, 262180, , continue with next number? |
|||
IfMsgBox, No |
|||
ExitApp |
|||
Gui, Destroy |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
4005 8017 326205 886205 194481 |
|||
╔════╦════╦════╗ ╔════╦════╦════╦════╗ ╔════╦════╦════╦════╦════╗ ╔════╦════╦════╦════╦════╗ ╔════╦════╦════╦════╦════╗ |
|||
║ ║ ║ ║ ║ ║ ║ ║ ●● ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ |
|||
║ ║ ║ ║ ║ ║ ║ ║————║ ║ ║ ║————║ ║ ║ ║ ║ ║————║ ║ ║ ║ ║ ║ ║ ║ ║ |
|||
║————║ ║ ║ ║ ║ ║ ║————║ ║ ║ ║————║————║ ║ ║ ║————║————║————║ ║ ║ ║ ║ ● ║ ║ ║ |
|||
║————║ Θ ║————║ ║ ● ║ Θ ║ Θ ║————║ ║ ●● ║ Θ ║————║————║————║ ║————║————║————║————║————║ ║ ● ║●●●●║————║●●●●║ ● ║ |
|||
╚════╩════╩════╝ ╚════╩════╩════╩════╝ ╚════╩════╩════╩════╩════╝ ╚════╩════╩════╩════╩════╝ ╚════╩════╩════╩════╩════╝ |
|||
</pre> |
|||
=={{header|BASIC}}== |
=={{header|BASIC}}== |