この記事では、Pythonのrandom
モジュールとinput()
関数を使い、ユーザーがコインの表裏を当てる簡単なコマンドラインゲームを作成する方法を解説します。
プログラムの設計
このゲームの処理の流れは以下の通りです。
- プレイヤーに「表」か「裏」を入力してもらう。無効な入力の場合は、再度入力を促す。
- コンピュータがランダムにコイントスの結果(表または裏)を決定する。
- プレイヤーの推測と、コンピュータの結果を比較する。
- 当たりかハズレかの結果を表示する。
コードの実装
上記の設計に基づき、Pythonで実装したコードが以下になります。
import random
# ユーザーからの入力を受け取り、検証する
guess = ''
# '表'か'裏'が入力されるまでループ
while guess not in ('表', '裏'):
print('コインの表裏を当ててください。「表」か「裏」を入力してください:')
guess = input()
# コインを投げる(0を裏、1を表とする)
toss_integer = random.randint(0, 1)
# 数値の結果を文字列に変換する
if toss_integer == 1:
toss_result = '表'
else:
toss_result = '裏'
# ユーザーの入力とコインの結果を比較し、結果を表示する
if guess == toss_result:
print('当たり!')
else:
print(f'ハズレ。正解は「{toss_result}」でした。')
コードの解説
入力の検証 while guess not in ('表', '裏'):
というループを使い、プレイヤーが'表'
または'裏'
のいずれかを入力するまで、入力を繰り返し求めます。これにより、不正な入力でプログラムが意図しない動作をすることを防ぎます。
コイントスのシミュレーション random.randint(0, 1)
を使い、0
または1
のどちらかの整数をランダムに生成します。この結果を、if
文を使って文字列の'表'
(1
の場合)と'裏'
(0
の場合)に割り当て、toss_result
変数に格納します。
結果の判定 最後に、プレイヤーの入力であるguess
変数と、コンピュータが出した結果であるtoss_result
変数を比較します。両者が一致すれば当たり、そうでなければハズレとして、最終的な結果をプレイヤーに伝えます。
まとめ
この簡単なゲームは、ユーザーからの入力を受け取るinput()
、乱数を生成するrandom
モジュール、そして条件に応じて処理を分岐させるif/else
文といった、Pythonの基本的な要素を組み合わせて作られています。これらの基本を応用することで、さらに複雑なプログラムを構築していくことができます。