ピラミッド その2
30分プログラム、その85。うー、日付をつけ間違えた。
id:mzp:20070714:pyramidoをRubyでやりなおしてみる。多少、表示を変えてたりする。
$ ruby pyramido.rb 6 * *** *********** ********* ********* *********** *** * $ ruby pyramido.rb 10 * *** ***** ******************* ***************** *************** ************* *************** ***************** ******************* ***** *** *
#!/usr/bin/env ruby class Array def zip_by(*array,&f) result = [] self.zip(*array){|item| result << f.call(*item) } result end end def to_pyramido(sizes) width = sizes.max sizes.map{|size| ('*'*size).center width,' ' } end height = ARGV[0].to_i padding = Array.new(height/3,0) sizes = Array.new(height){|i| 2*i+1 } + padding s = sizes.zip_by(sizes.reverse){|*item| item.max } puts to_pyramido(s).join("\n")
- ちょっとネタ切れ風味
- というか最近、勉強してからやるから、あまり難しいのはできないだけだったりする
- うわ、雷だっ