1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #!/usr/bin/ruby
- class Sierpinski {
- # **
- # * * *
- # **
- method letter_s(n) {
- var c = ['*'];
- {
- c = (c.map{|x| ' '*(x.len*2) + x*2 + ' '*(x.len*1) } +
- c.map{|x| x + ' '*(x.len) + x + ' '*(x.len) + x } +
- c.map{|x| ' '*(x.len*1) + x*2 + ' '*(x.len*2) }
- );
- } * n;
- return c;
- }
- # *
- # *
- # *
- method letter_i(n) {
- var c = ['*'];
- {
- c = (c.map{|x| x*2 } +
- c.map{|x| x*2 } +
- c.map{|x| x*2 }
- );
- } * n;
- return c;
- }
- # *
- # **
- # ***
- method letter_d(n) {
- var c = ['*'];
- {
- c = (c.map{|x| x*1 + ' '*(x.len*2) } +
- c.map{|x| x*2 + ' '*(x.len*1) } +
- c.map{|x| x*3 }
- );
- } * n;
- return c;
- }
- # ***
- # **
- # ***
- method letter_e(n) {
- var c = ['*'];
- {
- c = (c.map{|x| x*3 } +
- c.map{|x| x*2 + ' '*(x.len) } +
- c.map{|x| x*3 }
- );
- } * n;
- return c;
- }
- # ***
- # **
- # *
- method letter_f(n) {
- var c = ['*'];
- {
- c = (c.map{|x| x*3 } +
- c.map{|x| x*2 + ' '*(x.len*1) } +
- c.map{|x| x*1 + ' '*(x.len*2) }
- );
- } * n;
- return c;
- }
- }
- var size = 2;
- var ski = Sierpinski();
- var str = "sidef";
- var chars = gather {
- str.each { |char|
- take(ski.('letter_' + char)(size))
- }
- }
- chars.zip { |*a|
- say a.join(' ')
- }
|