#!/usr/koeki/bin/ruby # -*- coding: utf-8 -*- # エスケープシーケンスを用いて●を動かす print("これから●が\e[33m動\e[34mき\e[36mま\e[32mす!\e[m\n") sleep 2 # 2秒間待機 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) # カーソルを次の位置へ color = 30 + x%8 # ボールの色をx座標によって変える printf("\e[%dm%s\e[m", color, 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)