この記事は【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
♡♥♡♥ ♥♡♥♡
♡♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡
♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥
♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥
♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡
♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥
♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡
♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥
♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥
♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡
♡♥♡♥♡♥♡♥♡♥♡♥♡
♥♡♥♡♥♡♥♡♥
♥♡♥♡♥♡♥
♡♥♡
♡
♥
♡♥ ♥♡
♡♥♡♥♡♥♡♥♡ ♡♥♡♥♡♥♡♥♡
♥♡♥♡♥♡♥♡♥♡♥ ♥♡♥♡♥♡♥♡♥♡♥
♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥
♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡
♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥
♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡
♡♥♡♥♡♥♡♥♡♥♡♥♡
♡♥♡♥♡♥♡♥♡♥♡
♥♡♥♡♥♡♥
♥♡♥♡♥
♡
♥