牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

3の倍数と3が付く数字だけアホになり、5の倍数だけガルマっぽくなるスクリプトをPythonでやってみた

[訂正] 3が付く数字の処理をうっかり忘れてたので修正(´・ω・`)。(「not n % 3 」を「n % 3 == 0 or str(n).count("3")」)



どれくらい「Python力」が進歩したかはかるため、約半年前やった『1から100までの数字で、3の倍数と3が付く数字だけアホになるスクリプト』を若干条件を変え、前回のコードを見ないで再挑戦してみた。("いち"とかの文字列は前のコードから流用)


3の倍数〜のたぐいは今更な感じではあるけれども(||゚Д゚)
いきます。

python
#!/usr/local/bin/python
# *-# -*- coding: utf-8 -*-
#3の倍数と3が付く数字だけアホになり、5の倍数だけガルマっぽくなるスクリプト

normal = {0:"",1:"いち",2:"に",3:"さん",4:"よん",5:"ご",
          6:"ろく",7:"しち",8:"はち",9:"きゅう",10:"じゅう"}
funny = {0:"",1:"ぅい〜っち",2:"ぬぅい〜",3:"しゃぁ〜ん",4:"しぃ〜",5:"ごぉ",
         6:"ろおぉ〜うく",7:"すうぃ〜ち",8:"ふはぁ〜ち",9:"きゅぅ〜",10:"じぃゅうぅ"}
dog = {0:"ぅ...はかったな!シャアァ!!",5 :"ぉ...この化け物がぁっ!落ちろ!落ちろぉぉっ!",40:"よん...ジオン公国に栄光あれぇぇっ!!"}

def san_aho_go_garma():
    s = []
    for n in range(1, 41):
        if not n % 15:
            s.append(num_to_str(funny, n) + dog[num_div(n, -1)])
        elif not n % 5:
            s.append(num_to_str(normal, n) + dog[num_div(n, -1)])
        elif n % 3 == 0 or str(n).count("3"):
            s.append(num_to_str(funny, n))
        else:
            s.append(num_to_str(normal, n))
    else:
        s[-1] = dog[40]
    return "\n".join(s)

def num_div(n, p):
    return int(str(n)[p])
        
def num_to_str(dict, n):
    if n <= 9:
        return dict[n]
    if 10 <= n <= 19:
        return dict[10] + dict[num_div(n, -1)]
    if 20 <= n <= 39:
        return dict[num_div(n, -2)] + dict[10] + dict[num_div(n, -1)]
    if 40 <= n:
        return dict[num_div(n, -2)] + dict[10]

if __name__ == "__main__":
    print san_aho_go_garma()

あまり進歩してないっぽいなぁ(´・ω・`)
退化してるかも(つдT)

いちおう結果
いち
に
しゃぁ〜ん
よん
ごぉ...この化け物がぁっ!落ちろ!落ちろぉぉっ!
ろおぉ〜うく
しち
はち
きゅぅ〜
じゅうぅ...はかったな!シャアァ!!
じゅういち
じぃゅうぅぬぅい〜
じぃゅうぅしゃぁ〜ん
じゅうよん
じぃゅうぅごぉぉ...この化け物がぁっ!落ちろ!落ちろぉぉっ!
じゅうろく
じゅうしち
じぃゅうぅふはぁ〜ち
じゅうきゅう
にじゅうぅ...はかったな!シャアァ!!
ぬぅい〜じぃゅうぅぅい〜っち
にじゅうに
ぬぅい〜じぃゅうぅしゃぁ〜ん
ぬぅい〜じぃゅうぅしぃ〜
にじゅうごぉ...この化け物がぁっ!落ちろ!落ちろぉぉっ!
にじゅうろく
ぬぅい〜じぃゅうぅすうぃ〜ち
にじゅうはち
にじゅうきゅう
しゃぁ〜んじぃゅうぅぅ...はかったな!シャアァ!!
しゃぁ〜んじぃゅうぅぅい〜っち
しゃぁ〜んじぃゅうぅぬぅい〜
しゃぁ〜んじぃゅうぅしゃぁ〜ん
しゃぁ〜んじぃゅうぅしぃ〜
さんじゅうごぉ...この化け物がぁっ!落ちろ!落ちろぉぉっ!
しゃぁ〜んじぃゅうぅろおぉ〜うく
しゃぁ〜んじぃゅうぅすうぃ〜ち
しゃぁ〜んじぃゅうぅふはぁ〜ち
しゃぁ〜んじぃゅうぅきゅぅ〜
よん...ジオン公国に栄光あれぇぇっ!!