#!/usr/koeki/bin/ruby # -*- coding: utf-8 -*- # エスケープシーケンスを用いて●を動かす print("\e[2J") # 画面を消す ball = "●" kesu = " " wait = 0.05 # タイマー x = 60 # 60桁目の y = 10 # 10行目から STDOUT.sync = true # すぐ画面に反映させるため while x > 10 # 右から左へ printf("\e[%d;%dH", y, x) # カーソルを今の位置へ printf("%s", kesu) # 前のボールを消す x -= 1 printf("\e[%d;%dH", y, x) # カーソルを次の位置へ printf("%s", ball) # ボールを書く printf("\e[1;1H") # カーソルを邪魔でないところへ sleep(wait) # 一定時間休む end while y > 1 # 下から上へ printf("\e[%d;%dH", y, x) # カーソルを今の位置へ printf("%s", kesu) # 前のボールを消す y -= 1 printf("\e[%d;%dH", y, x) # カーソルを次の位置へ printf("%s", ball) # ボールを書く printf("\e[1;1H") # カーソルを邪魔でないところへ sleep(wait*2) # 一定時間休む end printf("\e[%d;%dHおしまい\n", y+1, 1)