MinaCoding2025_Imitate

ConcreteChars

For MinaCoding2025 Prompt 27: Imitate , ConcreteChars coded in Ruby is inspired by Nick Montfort’s Concrete Perl: https://nickm.com/poems/concrete_perl/ as well as the 256 bytes poemes. Instead of using Perl, the ruby code will be making concrete poems.

Poems

                   ac                   
           ["an", "ak", "s"]

     ["e", "af", "an", "n", "ae"]

["bb", "ac", "az", "ba", "u", "aw", "y"]
      ["ac", "a", "d", "g", "ay"]       
                 awiap                  
                   bb
                   b                    
            ["w", "m", "a"]

     ["am", "j", "ao", "g", "aw"]

["bb", "ba", "az", "al", "ai", "aw", "ay"]
       ["b", "s", "al", "v", "k"]       
                 awarb                  
                   bb
                   q                    
           ["ab", "y", "af"]

      ["m", "aj", "av", "a", "b"]

["ac", "as", "ae", "v", "ad", "x", "d"]
      ["q", "am", "ac", "f", "ax"]      
                 xbban                  
                   ac
                   af                   
          ["as", "bb", "ba"]

      ["ay", "p", "c", "b", "aq"]

["ae", "p", "y", "ay", "ak", "ab", "az"]
      ["af", "x", "az", "m", "i"]       
                 abalap                 
                   ae

Images

Ruby Code


use_random_seed Time.now.to_i / 2
x = ('a'..'bb').to_a.shuffle.reverse
y = ('a'..'bb').to_a.shuffle.reverse


#Output to a file
#.center(40) aligns the code to follow Form

File.open("filename", "w+") do |f|
  f.puts("#{x[0].center(40)}\n")
  f.puts("#{y.last(3)}\n".center(40))
  f.puts("#{x.last(5)}\n".center(40))
  f.puts("#{y.first(7)}\n".center(40))
  f.puts("#{x.first(5)}".center(40))
  f.puts("#{y[5]+y[10]+y[12]}".center(40))
  f.puts(y[0].center(40))
end
0
Subscribe to my newsletter

Read articles from Kofi / Illestpreacha directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Kofi / Illestpreacha
Kofi / Illestpreacha