はじめに
近畿大学ロボット研究会の部室にFelica(学生証)を用いた入退室管理システムを作成しました。
今回はアスキーアートの部分を紹介します。
入退室管理システムについて
入退室管理システムの全体像や動作のようすは以下のブログにまとまっています。
また、入退室管理システムの全体のプログラムは以下のブログにまとまっています。
プログラムの関数の詳細は以下のブログにまとまっています。参考にしてください。
実装
アスキーアートの収集
アスキーアートはあまり詳しくないので後輩に頼みました。
今回のシステムでは上記のサイトから好みのものを拾いました。
注意点
フォントは以下のサイトのSaitamaarってフォントを使います。アスキーアートは特定のフォントじゃないと正しく表示されないので設定をしておかなくてはなりません。
アスキーアート前処理
そのままコピペしてもってきてもpythonプログラムではうまく使えません。
そこで以下のプログラムを用いて少し加工します。
text = input()
text = text.replace('"', '\\"')
text = text.replace("'", "\\'")
print(text)
テキスト(アスキーアート)を入力し、pythonで狙った通りに表示されるように加工します。これでpythonでもアスキーアートが綺麗に表示されるはずです。
プログラム
入室の時のものを例にあげます。
import random
inAA_list =["アスキーアート1", "アスキーアート2", ・・・, "アスキーアートn"]
#inAA関数の定義
def inAA():
x = random.randint(1,len(inAA_list)) #ランダムにアスキーアートを選択
print(inAA_list[x]) #アスキーアートの表示
print(" ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄") #区切りを見やすくする線
inAA_listはものすごく煩雑になるので、メインの処理を行うプログラムと分けています。
おわりに
アスキーアートをターミナルで表示させるだけですが、色々と小技が必要です。このブログを参考に遊び心あるシステム開発に役立ててください。