「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python でハングマン ゲームを構築する方法: ステップバイステップ ガイド

Python でハングマン ゲームを構築する方法: ステップバイステップ ガイド

2024 年 11 月 9 日に公開
ブラウズ:884

How to Build a Hangman Game in Python: A Step-by-Step Guide

Hangman は古典的な単語当てゲームで、楽しく、初心者プログラマーにとって素晴らしいプロジェクトです。

この記事では、Python でハングマン ゲームの簡単なバージョンを構築する方法を学びます。

最後までに、Python の基本的な制御構造、関数、リストを使用してこのゲームを作成する方法を理解できるようになります。


ハングマンとは何ですか?

ハングマンの目標は、一度に 1 つずつ文字を提案して秘密の単語を推測することです。

プレイヤーは、ゲームが終了するまでに限られた数だけ間違った推測を行うことができます。

間違った推測ごとに、「絞首刑執行人」の図形の一部が描画されます。単語を推測する前に全体の図形が描画された場合、プレイヤーは負けます。

これを分解して、段階的にゲームを構築してみましょう。


ステップ 1: ゲームを計画する

ゲームとその主な機能を計画しましょう:

  • ゲームはランダムに単語を選択します。
  • プレイヤーは一度に 1 文字ずつ推測します。
  • プレイヤーが間違った推測をできる回数は限られています。
  • ゲームは、正しく推測された文字と残りの文字の空白を含む単語を表示します。

ゲームには次のコンポーネントが含まれます:

  • 単語の選択
  • プレイヤー入力 (推測)
  • 単語の表示を更新します
  • 間違った推測の数を追跡

ステップ 2: 必要なライブラリをインポートする

random モジュールを使用して、リストから単語をランダムに選択します。


import random



ステップ 3: 単語リストを定義する

次に、ゲームがランダムに選択する単語のリストを定義します。

さらに単語を追加して、ゲームをより面白くすることができます。


word_list = ['python', 'java', 'hangman', 'programming', 'computer']



ステップ 4: ゲームの関数を定義する

機能 1: 単語をランダムに選択する

単語リストから単語をランダムに選択する関数が必要です。


def get_random_word(word_list):
    return random.choice(word_list)


機能 2: 単語の現在の状態を表示する

プレイヤーが文字を推測するとき、正しく推測された文字と、推測されなかった文字のプレースホルダー (_) を表示する必要があります。


def display_word(word, guessed_letters):
    display = ''
    for letter in word:
        if letter in guessed_letters:
            display  = letter   ' '
        else:
            display  = '_ '
    return display.strip()


機能 3: プレイヤーが勝ったかどうかを確認する

この関数は、単語のすべての文字が推測されたかどうかをチェックします。


def is_word_guessed(word, guessed_letters):
    for letter in word:
        if letter not in guessed_letters:
            return False
    return True


機能4:ハングマンの表示

テキストベースのゲームでハングマンのフィギュアを表示するには、ASCII アートを使用してハングマンのさまざまな段階を表現できます。


def display_hangman(wrong_guesses):
    stages = [
        """
           -----
           |   |
           O   |
          /|\\  |
          / \\  |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
          /    |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
           |   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
               |
               |
               |
        --------
        """,
        """
           -----
           |   |
               |
               |
               |
               |
        --------
        """
    ]
    # Reverse the list to display the stages in the correct order
    stages.reverse()
    return stages[wrong_guesses]



ステップ 5: メイン ゲーム ループ

これで、ゲームのメインループを組み立てることができます。このループは次のようになります:

  • 推測された文字と間違った推測を記録します。
  • プレーヤーが推測を入力できるようにします。
  • 推測に基づいてゲームの状態を更新します。
  • プレイヤーが勝ったか負けたときにゲームを終了します。

完全なコード例:


import random


# Function to get a random word from the list
def get_random_word(word_list):
    return random.choice(word_list)


# Function to display the current state of the word
def display_word(word, guessed_letters):
    display = ''
    for letter in word:
        if letter in guessed_letters:
            display  = letter   ' '
        else:
            display  = '_ '
    return display.strip()


# Function to check if the word has been guessed
def is_word_guessed(word, guessed_letters):
    for letter in word:
        if letter not in guessed_letters:
            return False
    return True


# Function to display the hangman figure
def display_hangman(wrong_guesses):
    stages = [
        """
           -----
           |   |
           O   |
          /|\\  |
          / \\  |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
          /    |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
           |   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
               |
               |
               |
        --------
        """,
        """
           -----
           |   |
               |
               |
               |
               |
        --------
        """
    ]
    # Reverse the list to display the stages in the correct order
    stages.reverse()
    return stages[wrong_guesses]


# Main function to play the game
def play_hangman():
    word_list = ['python', 'java', 'hangman', 'programming', 'computer']
    word = get_random_word(word_list)
    guessed_letters = []
    attempts = 6
    wrong_guesses = 0

    print("Welcome to Hangman!")
    print("Guess the word!")

    # Main game loop
    while wrong_guesses 

説明

  • get_random_word(): 単語のリストから単語をランダムに選択します。
  • display_word(): 単語の現在の状態を表す文字列を作成し、正しく推測された文字と、推測されていない文字のプレースホルダーを表示します。
  • is_word_guessed(): プレーヤーが単語内のすべての文字を推測したかどうかを確認します。
  • display_hangman(wrong_guesses): この関数は、不正確な推測の数を引数として受け取り、そのステージに対応する ASCII アートを返します。
  • play_hangman(): ゲームを制御するメイン関数。ユーザー入力を処理し、プレーヤーの推測を追跡し、プレーヤーが勝ったか負けたかを判断します。

主要な変数:

  • guessed_letters: プレイヤーが推測した文字を保存するリスト。
  • wrong_guesess: プレーヤーが行った間違った推測の数を追跡します。 試行: 許容される誤った推測の最大数。
  • stages: このリストには、完成のさまざまな段階での絞首刑執行人のフィギュアの ASCII アート表現が含まれています。各ステージは、異なる数の不正確な推測に対応します。

ステップ 6: ゲームを実行する

ゲームを実行するには、main.py:

ファイルを作成したと仮定して、Python スクリプトを実行するだけです。

python main.py


ゲームでは文字の入力を求められ、ゲームが進むにつれて正しく推測された文字で単語が表示されます。

試行回数がなくなるとゲームが終了し、次のように負けます:


           -----
           |   |
           O   |
          /|\  |
          / \  |
               |
        --------

Game over! The word was: programming


次のように単語を正しく推測すると勝ちです:


           -----
           |   |
               |
               |
               |
               |
        --------

j a _ a
Enter a letter: v
Good guess! v is in the word.
Congratulations! You've guessed the word: java




結論

このシンプルなハングマン ゲームは、Python での制御構造、関数、リスト、および基本的な入出力の使用法を示します。

このプロジェクトを構築するときに、次のような機能を追加できます:

  • 単語のカテゴリを追加します。
  • ヒントを提供します。
  • スコアリング システムを追加します。

これは、より高度な Python の概念を学習しながら拡張するのに最適なプロジェクトです。

リリースステートメント この記事は、https://dev.to/devaservice/how-to-build-a-hangman-game-in-game-in-game-in-python-a-step-by-step-guide-136k?1に再現されています。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3