12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #!/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 = [];
- str.each { |char|
- chars.append(ski.('letter_' + char)(size));
- }
- chars.zip { |*a|
- say a.join(' ')
- }
|