Mayan numerals: Difference between revisions

m (→‎{{header|Phix}}: added syntax colouring, marked p2js incompatible)
Line 4,161:
╚════╩════╩════╩════╩════╩════╩════╩════╩════╩════╩════╩════╩════╩════╩════╩════╝
</pre>
=={{header|Ruby}}==
<lang ruby>numbers = ARGV.map(&:to_i)
if numbers.length == 0
puts
puts("usage: #{File.basename(__FILE__)} number...")
exit
end
 
def maya_print(number)
digits5s1s = number.to_s(20).chars.map { |ch| ch.to_i(20) }.map { |dig| dig.divmod(5) }
puts(('+----' * digits5s1s.length) + '+')
3.downto(0) do |row|
digits5s1s.each do |d5s1s|
if row < d5s1s[0]
print('|----')
elsif row == d5s1s[0]
print("|#{[(d5s1s[0] == 0 ? ' @ ' : ' '), ' . ', ' .. ', '... ', '....'][d5s1s[1]]}")
else
print('| ')
end
end
puts('|')
end
puts(('+----' * digits5s1s.length) + '+')
end
 
numbers.each do |num|
puts(num)
maya_print(num)
end</lang>
{{out}}
<pre>$ ruby mayan.rb 4005 8017 326205 886205 4294967296
4005
+----+----+----+
| | | |
| | | |
|----| | |
|----| @ |----|
+----+----+----+
8017
+----+----+----+----+
| | | | .. |
| | | |----|
| | | |----|
| . | @ | @ |----|
+----+----+----+----+
326205
+----+----+----+----+----+
| | | | | |
| | |----| | |
| | |----|----| |
| .. | @ |----|----|----|
+----+----+----+----+----+
886205
+----+----+----+----+----+
| | | | | |
| | |----| | |
| |----|----|----| |
|----|----|----|----|----|
+----+----+----+----+----+
4294967296
+----+----+----+----+----+----+----+----+
| | | | | |... | | . |
| | | | | |----| |----|
| | .. | | |----|----| |----|
|... |----| .. |... |----|----|....|----|
+----+----+----+----+----+----+----+----+</pre>
 
=={{header|Rust}}==