「ASCII Starts」をやってみる
30分プログラム、その769。anarchy golf - ASCII Starsをやってみました。
わりと素直に書けちゃったので、特に語ることないです。
使い方
scala> show(4) res16: String = * *** ***** ******* ***** *** *
ソースコード
def wrap(s : String) = "*%s*".format(s) def pad(w : Int, s : String) : String = { val left = ( w - s.size ) / 2 "%s%s%s".format(" " * left, s, " " * (w - s.size - left)) } def cross(n : Int) : List[String] = { val single = List("*") if(n == 1) single else single ++ cross(n-1).map(wrap(_)) ++ single } def show(n : Int) : String = { cross(n).map(pad(2*n-1, _)).mkString("\n") }