Pythonで扇風機をグルグル回す【アスキーアート】

712, 2023-07-31

目次

Pythonで扇風機をグルグル回す

いやー、毎日暑い。
なんだこの暑さは。
異常気象だ地球温暖化だ。

だが!人類にはすばらしい味方がついています。
この味方が付いていれば地球温暖化も何のその。
その味方とは・・・

扇風機」です。

人類の至宝、扇風機

ク・・・扇風機は人類の至宝です。
この扇風機のおかげでどれだけの人々が助かっているか。

このクー・・・扇風機にリスペクトを捧げて、今回はPythonで扇風機をグルグル回してみました。
この記事ではその扇風機のコードを具体的に解説します。

ではクーラ・・・扇風機の雄姿をどうぞ。

スクリプトの実行風景

今回作成したスクリプトを実行すると以下のような結果になります。

py-senpuki

うーん、グルグル回っていますね。
これは涼しそうです!

ソースコード全文

今回作成するスクリプトのコード全文は以下になります。

import os
import time

images = [
'''
   _______
  /     / \\
 |     /   |
 |    *    |
 |   /     |
 \\  /     /
  --------
    |  |
   ------
 BOoo..oooOON
''',
'''
   _______
  /   |   \\
 |    |    |
 |    *    |
 |    |    |
 \\    |   /
  --------
    |  |
   ------
  Boo..oooON
''',
'''
   _______
  / \\     \\
 |   \\     |
 |    *    |
 |     \\   |
 \\      \\ /
  --------
    |  |
   ------
   Bo..oooN
''',
'''
   _______
  /       \\
 |         |
 |----*----|
 |         |
 \\        /
  --------
    |  |
   ------
  Boo..oooON
''',
]

def main():
    while True:
        for img in images:
            os.system("cls")  # Linuxならclear
            print(img)
            time.sleep(0.033)


main()

扇風機画像の定義

今回は画像の代わりに文字列のアスキーアートで扇風機を表現します。
しかし変数などは便宜上、imagesなどの画像を表す変数名を使っています。

扇風機のアスキーアートを以下のように4枚配列で用意します。

images = [
'''
   _______
  /     / \\
 |     /   |
 |    *    |
 |   /     |
 \\  /     /
  --------
    |  |
   ------
 BOoo..oooOON
''',
'''
   _______
  /   |   \\
 |    |    |
 |    *    |
 |    |    |
 \\    |   /
  --------
    |  |
   ------
  Boo..oooON
''',
'''
   _______
  / \\     \\
 |   \\     |
 |    *    |
 |     \\   |
 \\      \\ /
  --------
    |  |
   ------
   Bo..oooN
''',
'''
   _______
  /       \\
 |         |
 |----*----|
 |         |
 \\        /
  --------
    |  |
   ------
  Boo..oooON
''',
]

main関数の定義

次にmain関数を以下のように定義します。

def main():
    while True:
        for img in images:
            os.system("cls")  # Linuxならclear
            print(img)
            time.sleep(0.033)

main関数ではまずwhile文で無限ループを回します。
これがゲームループ的な役割をします。

そしてその内側でimagesをfor文で回します。

os.system("cls")で端末のclsコマンドを呼び出しています。
Windowsのコマンドプロンプトではclsは画面をクリアするコマンドです。
その後にprint(img)で画像をプリントしています。
そしてtime.sleep(0.033)で33ミリ秒、スリープ(休止)を入れています。

このようにコードを書くと扇風機のアスキーアートがアニメーションしているようになります。

おわりに

今回は人類の至宝、扇風機をアニメーションさせてみました。

(^ _ ^)

なにか参考になれば幸いです

(・ v ・)

クーラー最高!



この記事のアンケートを送信する