Pythonを使って、コンソール上で遊べるハングマンゲームを作ってみましょう。ハングマンとは、相手が思い浮かべた単語を当てるゲームです。間違えるたびに、ハングマンの絵が描かれ、全て描かれたら負けというルールです。
必要なライブラリ
まず最初に、必要なライブラリをインポートします。今回は、randomライブラリを使用します。
import random
ハングマンの描画
ハングマンの描画には、文字列を使用します。以下は、ハングマンの絵を表示するための文字列です。
HANGMAN = (
"""
-----
| |
|
|
|
|
|
|
|
--------
""",
"""
-----
| |
| O
|
|
|
|
|
|
--------
""",
"""
-----
| |
| O
| -+-
|
|
|
|
|
--------
""",
"""
-----
| |
| O
| /-+-
|
|
|
|
|
--------
""",
"""
-----
| |
| O
| /-+-\\
|
|
|
|
|
--------
""",
"""
-----
| |
| O
| /-+-\\
| |
|
|
|
|
--------
""",
"""
-----
| |
| O
| /-+-\\
| |
| |
|
|
|
--------
""",
"""
-----
| |
| O
| /-+-\\
| |
| |
| |
| |
|
--------
""",
"""
-----
| |
| O
| /-+-\\
| |
| |
| | |
| | |
|
--------
""",
"""
-----
| |
| O
| /-+-\\
| |
| |
| _/|\\_
| / \\
|
--------
""",
)
ランダムな単語を選択
プログラム内に、単語リストを用意し、その中からランダムに単語を選択します。以下は、単語リストの例です。
WORDS = ("python", "jumble", "easy", "difficult", "answer", "xylophone")
単語リストから、ランダムに単語を選択するには、以下のようにします。
word = random.choice(WORDS)
ゲームの実行
それでは、 ゲームの実行に移りましょう。以下は、ゲームを実行するための関数です。
def hangman():
print("ハングマンへようこそ!")
# ランダムな単語を選択
word = random.choice(WORDS)
# 空のリストを作成して、推測した文字を格納
correct = []
incorrect = []
# ゲームの進行に合わせて、ハングマンの絵を描画
stages = len(HANGMAN) - 1
remaining = stages
# ゲームが終了するまでループ
while remaining > 0:
# ユーザーに推測する文字を入力してもらう
print("\n")
msg = "単語を推測して、1文字を入力してください:"
guess = input(msg)
# 入力された文字が単語に含まれているかチェック
if guess in word:
correct.append(guess)
# 単語をすべて当てた場合は、勝利メッセージを表示して終了
if set(correct) == set(word):
print("\nあなたの勝ちです!正解は「{}」でした!".format(word))
return
else:
incorrect.append(guess)
remaining -= 1
# 現在の状況を表示
print("推測した文字:", end=" ")
for letter in word:
if letter in correct:
print(letter, end=" ")
else:
print("_", end=" ")
# 推測に失敗した場合は、間違った回数に応じてハングマンの絵を描画
print("\n間違った回数:{}".format(len(incorrect)))
print(HANGMAN[len(HANGMAN) - remaining - 1])
# ハングマンが完成してしまった場合は、負けメッセージを表示して終了
print("\nあなたの負けです!正解は「{}」でした!".format(word))
ゲームの実行
最後に、プログラムを実行しましょう。以下は、hangman()関数を実行するためのコードです。
hangman()
以上で、Pythonでハングマンゲームを作る方法を紹介しました。楽しくプログラミングをして、自分なりのゲームを作ってみましょう!