APIの機能を用いてハングマンゲームを作ってみた

# はじめに
こんにちは! 開志専門職大学情報学部2年(2027年卒)の@kondokarenと申します!

まず、ハングマンゲームは、プログラミングの練習に最適なシンプルで楽しいゲームです。この記事では、Pythonを使ってAPIからランダムな単語を取得し、その単語を使ってハングマンゲームを作成する方法を紹介します。

# ステップ1:必要なライブラリのインストール
まず、requestsライブラリをインストールします。これにより、APIからデータを取得できます。
```ruby:Python
pip install requests
```

# ステップ2:ランダムな単語を取得するAPIを選ぶ
ここでは、Random Word APIを使用します。このAPIはシンプルで使いやすく、ランダムな単語を取得するのに最適です。
https://random-word-api.herokuapp.com/home

# ステップ3:ゲームのコードを書く
以下は、APIを使ってランダムな単語を取得し、ハングマンゲームを実装するコードの例です。

```ruby:Python
import requests
import random

def get_random_word():
    response = requests.get("https://random-word-api.herokuapp.com/word?number=1")
    if response.status_code == 200:
        return response.json()[0]
    else:
        return "python"  # APIが使えない場合のデフォルト単語

def display_hangman(tries):
    stages = [
        """
           -----
           |   |
           O   |
          /|\\  |
          / \\  |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
          /    |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
           |   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
               |
               |
               |
        --------
        """,
        """
           -----
           |   |
               |
               |
               |
               |
        --------
        """
    ]
    return stages[tries]

def play_hangman():
    word = get_random_word()
    word_completion = "_" * len(word)
    guessed = False
    guessed_letters = []
    guessed_words = []
    tries = 6

    print("ハングマンゲームへようこそ！")
    print(display_hangman(tries))
    print(word_completion)
    print("\n")

    while not guessed and tries > 0:
        guess = input("文字を予想してください: ").lower()
        if len(guess) == 1 and guess.isalpha():
            if guess in guessed_letters:
                print("その文字はすでに予想されています。")
            elif guess not in word:
                print(f"{guess} は単語に含まれていません。")
                tries -= 1
                guessed_letters.append(guess)
            else:
                print(f"よくできました！{guess} は単語に含まれています。")
                guessed_letters.append(guess)
                word_as_list = list(word_completion)
                indices = [i for i, letter in enumerate(word) if letter == guess]
                for index in indices:
                    word_as_list[index] = guess
                word_completion = "".join(word_as_list)
                if "_" not in word_completion:
                    guessed = True
        elif len(guess) == len(word) and guess.isalpha():
            if guess in guessed_words:
                print("その単語はすでに予想されています。")
            elif guess != word:
                print(f"{guess} は正しい単語ではありません。")
                tries -= 1
                guessed_words.append(guess)
            else:
                guessed = True
                word_completion = word
        else:
            print("無効な入力です。")

        print(display_hangman(tries))
        print(word_completion)
        print("\n")

    if guessed:
        print("おめでとうございます！単語を当てました！")
    else:
        print(f"残念！正解の単語は {word} でした。")

if __name__ == "__main__":
    play_hangman()
```

# ステップ4:ゲームを実行する
上記のコードを実行すると、APIからランダムな単語を取得し、その単語を使ってハングマンゲームが始まります。プレイヤーは文字を一つずつ予想し、正解するまで続けます。

# まとめ
このハングマンゲームの実装は基本的なものですが、さらに機能を追加してカスタマイズすることも可能です。例えば、単語リストを外部ファイルから読み込んだり、GUIを使って視覚的に楽しめるようにすることもできます。プログラミングのスキルを磨きながら、楽しいゲームを作ってみてください！