pythonでターミナル上にNOW LOADINGが左から右に動くものを作った

# このプログラムなに？

ゲームとかしていると、`NOW LOADING`って文字が右下とかにあって、
左から右に移動してたり、一部文字が大きくなってたりするやつがあると思いますが、それです。
わからなかったらもうしわけありません。

コードはpython3で書いてます。拙いコードですが、お許しください…



# コード
キャリッジリターン（\r）を使えば、ターミナルの出力を上書きすることができます。
例えば、ハイフン`-`が0.5秒ごとに右に移動するアニメーションを作りたいなら、以下のようなコードになります。

```python:sample.py
import time

    for i in range(0, 9):
        print('\r{0} {1}%'.format(' ' * i, '-'), end='')
        time.sleep(0.5)
```

<br>
これだと10回右に行ったらおしまいなプログラムになるので、`NOW LOADING`がループしつつ、
右にある程度移動したら、だんだん消えていき、左から泡られるようにしました。↓


```python:move.py
import time
import os

def main():
    # ループさせるための初期値の設定
    num = 1
    # クロックの設定
    clock = 0.5
    os.system('cls')
    print(" ")

    # ここから文字が動くコード
    while num != 0:
        str = 'N　O　W　　L　O　A　D　I　N　G'
        space = '　' * num
        count = num - 20

        if num < 20:
            time.sleep(clock)
            # 文字の描写の部分。numの値が増加するほど横に移動する
            print('\r{0} {1}'.format(space, str), end='')
            num += 1

        else:
            # 右に全角スペース20個分移動したら、右にoutして、左からinする部分
            if count <= len(str):
                time.sleep(clock)
                print('\r{0} {1} {2}'.format(str[len(str) - count:], '　' * (num - count), str[:(le`n(str) - count)]), end='')
                num += 1

            else:
                num = 1

if __name__ == "__main__":
    main()
```


# 何に使えるの？
役に立つようなプログラムになるとは思えませんが、パッケージのインストーラとかで
`INSTALLING`の文字が動いてたりするとお洒落だと信じてます。

`apt`だったり`yum`のインストール中に、オリジナルの文字やアスキーアートを動かせたらいいな！
と思っています。



# おまけ

本当はお魚さんが泳ぐ、以下のコードを当初作る予定でした…

友人の車に乗っているときに、CDプレイヤー上で小さい液晶上にマンボウさんが泳ぐ
モードがあり、いいなあと思って自分も作ってみました。
ただ、自分でもあまりにイケてないコードであると思うこと、思いのほかお魚さんが
かわいく表示できなかったので、おまけに掲載しました…　ミ((((°＞

```python:fish.py
import time
import os

def main():
    # ループさせるための初期値の設定
    num = 1
    # クロックの設定
    clock = float(input('速さを入力してください([早い]1>>>5>>>10[遅い])')) / 10
    os.system('cls')
    print(" ")

    # ここからお魚さんが泳ぐ
    while num != 0:
        if num < 11:
            time.sleep(clock)
            space = '　' * num
            # お魚さんの描写の部分。numの値が増加するほど横に移動する
            print('\r{0} {1} {2} {3} {4} {5}'.format(space + '　　', '△\n', space, 'ミ((((°＞\n', space + '　', 'レ' + '\033[2A'), end='')
            num += 1

            # ヒレを動かすための部分
            time.sleep(clock)
            print('\r{0} {1} {2} {3} {4} {5}'.format(space + '　　', '△\n', space, 'Ξ((((°＞\n', space + '　', 'レ' + '\033[2A'), end='')


        else:
            # 右に全角スペース10個分移動したら、右にフェイドアウトする部分
            time.sleep(clock)
            space = '　' * num
            print('\r{0} {1} {2} {3} {4} {5}'.format(space + '　　　', '△\n', space, '　ミ((((　　\n', space + '　　', 'レ' + '\033[2A'), end='')
            time.sleep(clock)
            print('\r{0} {1} {2} {3} {4} {5}'.format(space + '　　　', '△\n', space, '　Ξ((((　　\n', space + '　　', 'レ' + '\033[2A'), end='')

            time.sleep(clock)
            print('\r{0} {1} {2} {3} {4} {5}'.format(space + '　　　　', '\n', space, '　　ミ((　　　\n', space + '　　　', '' + '\033[2A'), end='')
            time.sleep(clock)
            print('\r{0} {1} {2} {3} {4} {5}'.format(space + '　　　　', '\n', space, '　　Ξ((　　　\n', space + '　　　', '' + '\033[2A'), end='')

            time.sleep(clock)
            print('\r{0} {1} {2} {3} {4} {5}'.format(space + '　　　　　', '\n', space, '　　　　　\n', space + '　　　', '' + '\033[2A'), end='')

            # 右にフェイドアウトしたら、左からフェードインしてくる部分
            time.sleep(clock * 2)
            space = '　' * 20
            print('\r{0} {1} {2} {3} {4} {5}'.format(space , '\n', '°＞', space + '\n', space, '\033[2A'), end='')
            time.sleep(clock * 2)
            print('\r{0} {1} {2} {3} {4} {5}'.format('　△', space + '\n', '(((°＞', space + '\n', space, '\033[2A'), end='')
            time.sleep(clock * 2)
            print('\r{0} {1} {2} {3} {4} {5}'.format('　　△', space + '\n', 'Ξ((((°＞', space + '\n　 レ' , space , '\033[2A'), end='')
            time.sleep(clock)
            print('\r{0} {1} {2} {3} {4} {5}'.format('　　△', space + '\n', 'ミ((((°＞', space + '\n　 レ' , space , '\033[2A'), end='')
            num = 1

if __name__ == "__main__":
    main()
```

よかったら、コピペして動かしてみてください！