この記事は【Kuin Advent Calendar 2016】の24日目の記事です。
【記事中で紹介しているコードについて】
コンパイルが通らない場合など、不具合があれば、@tatt61880まで連絡いただけると助かります。よろしくお願いいたします。
func main() do @printHeart(10) do @printHeart(6) end func func printHeart(r: int) for y(r * 3 / 2, -r, -1) var str: []char :: "" for x(-2 * r, 2 * r) do str :~ [" ♥♡"[((2 * r + x + y) % 2 + 1) * (isInsideHeart((x $ float / 2.0 / r $ float).abs(), y $ float / r $ float) ?(1, 0))]] end for do cui@print(str ~ "\n") end for func isInsideHeart(x: float, y: float): bool ret x ^ 2.0 + (y - (x ^ (2.0 / 3.0))) ^ 2.0 <= 1.0 end func end func
♡♥♡♥ ♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡♥♡ ♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥ ♡♥♡ ♡ ♥ ♡♥ ♥♡ ♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡ ♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡ ♥♡♥♡♥♡♥ ♥♡♥♡♥ ♡ ♥