0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Posted at

はじめに

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

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

ステップ1:必要なライブラリのインストール

まず、requestsライブラリをインストールします。これにより、APIからデータを取得できます。

Python
pip install requests

ステップ2:ランダムな単語を取得するAPIを選ぶ

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

ステップ3:ゲームのコードを書く

以下は、APIを使ってランダムな単語を取得し、ハングマンゲームを実装するコードの例です。

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を使って視覚的に楽しめるようにすることもできます。プログラミングのスキルを磨きながら、楽しいゲームを作ってみてください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?