LoginSignup
6
1

More than 5 years have passed since last update.

M-1グランプリ2017決勝のジャルジャルネタ再現してみた

Posted at

Nuco Advent Calendar 8日目の記事です。

盛り上げてくれへん?

今年のM-1グランプリは皆様ご覧になられましたでしょうか?
どのコンビのネタもすごくおもしろかったですね。
いやー個人的にはジャルジャルのネタすごい好きだったんですけどね。優勝ならずでした。

あのネタやってみたいんですけど僕は相方いないし1人でやるのもどうかな、と思ったので、
pythonにジャルジャル後藤役をやってもらうことにしました。

python2

実はpython2ってあんまり書いたことないんですよ。
っていうかほとんど書いたことないんですけど、今回できれば色んな方に是非盛り上がってもらおうと思って、色んなLinuxディストリビューションにプリインストールされてるpython2系を採用しました。

python2の文字列操作はめんどくさそうだったんですけど、実際めんどくさい。
python3は楽でいいですね。
ちょこちょこエラー吐かれるたびに3にすればよかったと後悔しました。

実行してみた

コードはこちら

$ python jarujaru.py
今から変な校内放送やるから盛り上げてくれへん?
(Press Ctrl-C to exit.)
> ピンポンパン
一個少ないな
> ピンポンパンポンピン
一個多いな
> ぴん
背筋伸びてるやん
> ピン
背筋伸びてるやん
> ピン
背筋伸びてるやん
> ぴん
背筋伸びてるやん
> ぴん
背筋のびきってるやん
> ピンポンパンライス
いや、ファミレス行ってピンポン押して店員さん呼んでハンバーグ定食頼んだらパンorライスって聞かれてるやん
> ピンポン
誰か来ましたよ-
> ぽんぴん
来ましたよ-誰か
> やったら絶対できる子やねん
よしよしすな
> ほげ
変な校内放送やってや

入力は全角半角どちらでも大丈夫です。
ぴらがなでもOK。jaconvというパッケージでそのへんの処理をやってます。

jarujaru.py
def goto(boke):
  s = boke.decode('utf-8')
  if s == u'やったら絶対できる子やねん':
    return u'よしよしすな'
  s = jaconv.hira2kata(s)
  ends_with_rice, s = rice(s)
  noise = len(filter(lambda x: not x in [u'ピ', u'ン', u'ポ', u'パ', u'ー'], list(s)))
  if noise:
    return '変な校内放送やってや'
  s = filter(lambda x: x in [u'ピ', u'ン', u'ポ', u'パ'], list(s))
  s = jaconv.z2h(''.join(s))
  return evaluate(s, ends_with_rice=ends_with_rice)

ただし、ピンポンパン(と伸ばし棒)以外の文字が入ってるとevaluateできずに変な校内放送やってやって怒られます。

校内放送しよう!

コードも急いで書いたのでちょっと雑ですが、python2系の文字列処理の煩わしさを体感することができました。
今後もあまり2系でコーディングすることはなさそうですが、python3が使えることに感謝しながらコーディングに励みたいと思います!

書くことなさすぎてこんなクソ記事書いたってのは秘密だよ!!!

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1