Skip to content
This page has been auto-translated and may contain errors.View in English

マッドリブ

Cass よし、こんにちは!次の2週間、私はクルーのエンターテイメント担当なんだけど、まったく何も用意できていないんだ。マッドリブみたいなものを作ってくれない?みんなにいくつかの単語を聞いて、それを物語に当てはめて、カオスな結果を表示するやつ。賢くなくていいんだ。むしろ賢くない方がいい 😄

作るもの

名詞を入力してください: ピザ
動詞を入力してください: 爆発した
形容詞を入力してください: キラキラした
場所を入力してください: 図書館

キラキラしたピザが図書館で爆発した。誰も予想していなかった。

必要なもの

  • 出力と入力 — プレイヤーから各単語を集める
  • 文字列 — f-string を使って単語を物語のテンプレートに差し込む
  • リスト — 集めた単語を使う前に保存しておく方法の一つ
  • 関数 — 任意ですが、「単語を尋ねる」処理を関数にまとめると、コードがすっきりします

ヒント

まず集めてから、出力する。 物語を組み立てる前に、すべての単語を集めましょう。input() の呼び出しと物語の出力を混ぜると、すぐに混乱します。

f-string が自然な選択肢です。 すべての単語が揃ったら、変数を差し込んだ単一の f-string だけで出力行を組み立てることができます。

変数かリストか。 各単語をそれぞれの変数(noun = ...verb = ...)に格納してもよいし、すべてをリストにまとめてもかまいません。どちらでも動きますが、物語の行を書くときにどちらが読みやすいかを考えてみましょう。

さらに進めるには

基本バージョンが動いたら:

  • 複数のテンプレート。 2つか3つの異なる物語テンプレートを書いて、random モジュールを使ってランダムに1つ選びましょう。
  • より多くの単語の種類。 複数形の名詞、過去形の動詞、数字、色などを追加しましょう。空欄が増えるほど、結果はおかしくなります。
  • プレイヤーに選ばせる。 利用可能な物語テンプレートを名前で表示し、単語を集める前にプレイヤーに選ばせましょう。