title: マッドリブス description: プレイヤーから単語を集めて、f文字列を使ってストーリーテンプレートに挿入します。
マッドリブス
Cass やあ!次の2週間はイベント企画を担当することになったんだけど、全く何も決まってないんだ。マッドリブスのプログラムを作ってくれない?何個か単語を入力してもらって、ストーリーに入れ込んで、カオスを出力するやつ。賢くなくていい。むしろ賢くない方がいい 😄
作るもの
名詞を入力してください: ピザ
動詞を入力してください: 爆発した
形容詞を入力してください: キラキラした
場所を入力してください: 図書館
キラキラしたピザが図書館で爆発した。誰も予想していなかった。必要な知識
- 出力と入力 - プレイヤーから各単語を集める
- 文字列 - f文字列を使って単語をストーリーテンプレートに挿入
- リスト - 集めた単語を保存する1つの方法
- 関数 - オプションですが、「単語を入力してもらう」処理を関数でまとめるとコードがスッキリします
ヒント
先に集めて、後で出力する。 全ての単語を集めてからストーリーを作りましょう。input()呼び出しとストーリー出力を混ぜるとすぐに分かりにくくなります。
F文字列は最適な選択肢です。 全ての単語を集めたら、単語が挿入されたf文字列1つで出力行を作るだけで十分です。
変数またはリスト。 各単語を独立した変数に保存する(noun = ...、verb = ...)か、すべてリストに集めるかのどちらでもできます。どちらでも動きますが、ストーリー行を書くときにどちらが読みやすいか考えてみましょう。
さらに発展させる
基本版が完成したら:
- 複数のテンプレート。 2〜3つの異なるストーリーテンプレートを書いて、
randomモジュールを使ってランダムに選択する。 - 単語の種類を増やす。 複数形の名詞、過去形の動詞、数字、色を追加する。空欄が多いほど面白い結果になります。
- プレイヤーに選ばせる。 利用可能なストーリーテンプレートを名前で表示して、単語を集める前にプレイヤーに選んでもらう。

