Pythonは多様なアプリケーションを開発するために使用できる柔軟な言語です。この記事では、Pythonを使って古典的なゲームであるハングマンを作成する方法を紹介します。ハングマンは、プレイヤーが単語を当てるゲームです。プレイヤーは、単語の文字数を知り、それを当てるために推測を行います。プレイヤーは、正しい文字を入力すると、その文字が単語の中に存在する場所に表示されます。間違った文字を入力すると、ギロチンの絵が描かれるハングマンの一部が追加されていきます。プレイヤーがすべての文字を当てる前に、ハングマンが完成すると負けになります。

必要なもの

このプロジェクトを始める前に、いくつかのライブラリが必要です。Pythonの標準ライブラリに含まれるrandomモジュールと、外部ライブラリのpyfiglettermcolorが必要です。これらをインストールするには、次のコマンドを使用します。

pip install pyfiglet termcolor

コードの解説

ハングマンを作成するには、次の手順が必要です。

  1. プレイヤーが当てる単語を選択する。
  2. プレイヤーが推測できる文字のリストを作成する。
  3. プレイヤーに推測を促す。
  4. プレイヤーが入力した文字が単語に含まれているかどうかを確認する。
  5. プレイヤーが勝つか負けるかどうかを確認する。

以下は、この手順を実行するPythonコードの例です。

import random
import pyfiglet
from termcolor import colored

# ハングマンの単語リスト
WORDS = ["apple", "banana", "cherry", "durian", "elderberry"]

# プレイヤーに表示される文字
GUESSED_LETTERS = ["_"] * 26

# ゲーム開始
def play_game():
    word = random.choice(WORDS)
    guessed = set()
    wrong_guesses = 0
    while wrong_guesses < 6:
        # 単語の表示
        word_display = " ".join([letter if letter in guessed else "_" for letter in word])
        print(pyfiglet.figlet_format(word_display))
        print(colored(f"Wrong guesses: {wrong_guesses}/6", "red"))
        print(colored(f"Guessed letters: {' '.join(guessed)}
        if "_" not in word_display:
            print("Congratulations, you won!")
            break
        guess = input("Guess a letter: ").lower()
        if guess in guessed:
            print(colored("You already guessed that letter.", "yellow"))
        elif guess in word:
            guessed.add(guess)
            print(colored("Correct!", "green"))
        else:
            guessed.add(guess)
            wrong_guesses += 1
            print(colored("Incorrect.", "red"))
    else:
        print("You lost.")
        print(pyfiglet.figlet_format(word))

play_game()

このコードは、ハングマンゲームを作成するために必要なすべての機能を備えています。randomモジュールを使用して、プログラムが選択する単語をランダムに選択します。pyfiglettermcolorライブラリを使用して、単語を見やすく表示します。そして、whileループを使用して、プレイヤーに推測を促し、入力された文字が単語に含まれているかどうかを確認し、プレイヤーが勝つか負けるかどうかを確認します。

おわりに

この記事では、Pythonを使用してハングマンゲームを作成する方法を紹介しました。このプロジェクトを通じて、Pythonのさまざまな機能を学ぶことができ、より大きなプロジェクトに応用できるスキルを磨くことができます。