第4回 野球ゲームを作ってみよう

5. 野球ゲームを作ってみよう。

といっても、簡単なものです。ゲームをする人はピッチャーで、球種を選んでもらいます。
9回裏2アウト満塁、カウント2-3の場面で、何を投げるのか。
あらかじめバッターが狙っていた球種と一致すればヒット、違えば三振です。

■要件

まずは、プレイヤーからの入力を学びます。
最初に「何を投げますか?」と言うメッセージと、球種の一覧を表示して入力を待ちます。
選択肢は

  1. ストレート
  2. カーブ
  3. シュート
  4. フォーク

とします。対応する番号を入力すると、「ストレートを投げた!」と表示した後、「・」を2秒かけて10回表示します(ひとつあたり0.2秒)。

ソースコード

import sys
import time

pitch = input("""何を投げますか?
1. ストレート
2. カーブ
3. シュート
4. フォーク
>>""")
if pitch == 1:
    print("ストレートを投げた!")
elif pitch == 2:
    print("カーブを投げた!")
elif pitch == 3:
    print("シュートを投げた!")
elif pitch == 4:
    print("フォークを投げた!")
for i in range(10):
    time.sleep(0.2)
    sys.stdout.write('・')

■解説

このプログラムを理解するのに必要な知識
  1. inputでユーザー入力

また、ここまてで覚えてきた次の知識も使います。復習はバックナンバーを!

  1. print、sys.stdout.write関数で文字を表示
  2. 文字列は「'」「"」改行も含めたい場合は「"""」で囲む
  3. import文で外部モジュールを読み込む
  4. if ~ elif ~ elseで条件分岐
  5. ==で等しいかチェック
  6. インデントでコードブロックに
  7. for i in range(10)で10回繰り返す
  8. time.sleep関数で一時停止
1. 文字入力

javaに比べたら、驚くほど簡単。javaは厳密なので初心者には難しいところがありますね…
input関数を使います。

変数 = input(プロンプトメッセージ)

入力を促すメッセージを表示した後、ユーザー入力を待ちます。input関数はEnterが入力されるまでに入力された値を返します。例文では変数で受け取っていますが、必ずではありません。