Pythonでsl
30分プログラム、その705。前にcursesみたいにターミナルの任意の位置にテキストを出す関数 - みずぴー日記でcursesを使わずに端末の好きな位置に文字を出せるようになったので、slを作ってみました。
Perlで使っていた\eがPythonでは使えなかったので、hi_saitoさんが使っていた\033を使っています。
で、作ってから気がついたんですが、本物のslと違って煙がでません。まあ、クリーンなSLということで。
使い方
$ python sl.py ________ __________ _______/ \__I_I_____===__|_________ | H\________/ | | =|___ ___| ________________ | H | | | | ||_| |_|| _| \_____ | H |__--------------------| [___] | =| __|___H__/__|_____/[][]~\_______| | -| -----------I_____I [][] [] D |=======|____|________________________| =-~~\ /~~\ /~~\ /~~\ ____Y___________|__|__________________________| | || || || |_____/~\___/ |_D__D__D_| |_D__D__D_ \__/ \__/ \__/ \__/ \_/ \_/ \_/ \_/ \_
ソースコード
import time Data = """ ==== ________ ___________ _D _| |_______/ \__I_I_____===__|_________| |(_)--- | H\________/ | | =|___ ___| _________________ / | | H | | | | ||_| |_|| _| \_____A | | | H |__--------------------| [___] | =| | | ________|___H__/__|_____/[][]~\_______| | -| | |/ | |-----------I_____I [][] [] D |=======|____|________________________|_ __/ =| o |=-~~\ /~~\ /~~\ /~~\ ____Y___________|__|__________________________|_ |/-=|___|| || || || |_____/~\___/ |_D__D__D_| |_D__D__D_| \_/ \__/ \__/ \__/ \__/ \_/ \_/ \_/ \_/ \_/ """.split("\n") def put(x,y,str): print "\033[%d;%dH%s\n" % (y,x,str) def clear(): print "\033[2J" for x in xrange(0,85): clear() for y in xrange(0,len(Data)): put(0,y,Data[y][x:-1]) time.sleep(0.05)