fork download
  1. local random_char_string = function(arr, length)
  2. local result = ""
  3. for i = 1, length do
  4. result = result .. arr[math.random(#arr)]
  5. end
  6. return result
  7. end
  8.  
  9. local yoba = function(atoms, n)
  10. local str = ""
  11. for i = n, 0, -1 do
  12. str = str .. string.rep(" ", i) .. random_char_string(atoms, (n - i) * 2 + 1) .. "\n"
  13. end
  14. return str
  15. end
  16.  
  17. local n = tonumber(io.read())
  18. if not n then n = 10 end
  19. local atoms = {"+", ".", "*", "~", "^", "o"}
  20.  
  21. print(yoba(atoms, n))
Success #stdin #stdout 0.02s 2500KB
stdin
20
stdout
                    o
                   *^^
                  o.*^.
                 ~*~*~oo
                ~^+~+.+^+
               *++o.~o~.~~
              *o.^~^*o.*^o+
             o~+.~o*++*+.ooo
            .~*^~^~+*oo^.^~*^
           +*o^..o*^o~~o*o*^^o
          *.oo+o~*~.^.*...~*.o+
         +*^oo^*^*..~.+^+^+^+o+~
        ..^^~o~^++~++.*^~^++o.o+o
       +o++o~.+*o^*~~*^+~^.o~o^~+^
      ^oo^o^oo^*+^o+~.~.^...+~.~~o.
     ~^+*~o**o*+*~^.^**.^.~+*^^~*.~~
    ^.^.o^~.~+.o^++*~~~.^...o+^..*oo^
   ^+^*^ooo.^~.ooo*~+.o**o*..^^+~*o^..
  *++*.oo~o^***~~.+++~*..+*o~.~^*+o~~.~
 *^*..^~o*o+*+^^.+o^+*o^.*o++*.~^+++*^^*
+~~~~*.o*.~~~~.^++o.*.^.*o*^~+.^~o...~+^^