Pythonで1桁から4桁までの数字当てゲームをコマンドライン上で作成する方法

スポンサーリンク

この記事では、Pythonの標準ライブラリを使って、乱数当てゲームを作成する予定です。このチュートリアルは、コマンドラインインターフェース(CLI)とグラフィカルユーザーインターフェース(GUI)の2つのパートに分かれています。

このチュートリアルの最初のパートでは、ゲームを実装し、グラフィカルなアイキャッチなしでコマンドラインでそれを実行します。次のパートでは、このチュートリアルの拡張として、ゲームにグラフィカルなインターフェイスを追加します。このプロジェクトは初級レベルですが、pythonのごく基本的な理解が必要です。

こちらもお読みください。Python Hi-lo ゲーム

スポンサーリンク

数当てゲームのルールを理解する

アプリケーションのコーディングを進める前に、アプリケーションが何をすべきか、どのように動作することが期待されるかを明確に理解することが非常に重要です。

そこで、まずこのゲームの基本的なルールを整理しておきます。

    1. コンピュータが1から1000までの数字を推測し、あなたはその数字を当てる必要があります。
    1. 正しい数字を当てるまで、リトライ回数は無制限。リトライの回数が少ない方が勝ちとなります。
  1. 3.コンピュータは、プレイヤーが間違った数字を選んだ場合にヒントを与えます – ターゲットが0とユーザーが推測した数字の間にある場合、コンピュータはプレイヤーに教えます。例:78を選んで45になった場合、ターゲットナンバー(45)は0と78の間にあるため、コンピュータはそれに応じてプロンプトを表示します。

Python による数字当てゲームの作成

それでは、コードの実装に入りましょう。

注:このコードベースはCLIだけで実装されていますが、GUI版のゲームのバックボーンとして機能します。

1~1000の乱数を発生させます。

1 から 1000 までの乱数を生成するために、python の random ライブラリの randint() 関数を使用します。

# Import the random module
import random
 
# Computer chooses a random number between 1 and 1000
target = random.randint(1, 1000)

ユーザーから数値を入力する

ユーザーから数字 a を入力するには input() 関数を使用します。

# Input the guess from the user
choice = int(input("Enter your guess: "))

ユーザーからの入力があったので、2つの数字を比較して1つの出力を表示することができる。ユーザーが正しい選択肢を選ぶまでゲームを続けるには、すべてをループさせなければならない。

全体の処理をループさせる

あと3つ、気をつけなければならないことがあります。

    1. 推測とヒントのための正しいプロンプトを生成します。これはネストされたif-elseブロックを使って実装することができる。
    1. リタイアの回数を数える。カウンタ変数を用意し、プレイヤーが間違った選択をするたびに増加させる。
    1. 正しい推測が行われるまで、すべての操作を繰り返す。すべての処理を無限ループで囲み、正しい推測が行われたときだけループを抜けるようにします。

この3つの問題をまとめて解決するのが、このブロックのコードです。

# Counter Variable
retries = 0
 
while(True):
   
  # Taking user choice
  choice = int(input("Enter your choice: "))
  retries += 1
 
  # Wrong guess
  if target != choice:
     
    print("Wrong Guess!! Try Again")
     
    # Hint
    if target < choice:
      print("The required number lies between 0 and {}".format(choice))
    else:
      print("The required number lies between {} and 1000".format(choice))
   
  # Correct choice
  else:
    print("You guessed the  correct number after {} retries".format(retries))
    # User guessed the correct value
    # So let's end the infinite loop
    break;

数字当てゲームの最終的なPythonコード

すべてのブロックをまとめると、最終的なPythonのプログラムは次のようになります。

# Import the random module
import random
 
# Computer chooses a random number between 1 and 1000
target = random.randint(1, 1000)
 
retries = 0
 
while(True):
   
  # Taking user choice
  choice = int(input("Enter your choice: "))
  retries += 1
 
  # Wrong guess
  if target != choice:
     
    print("Wrong Guess!! Try Again")
     
    # Hint
    if target < choice:
      print("The required number lies between 0 and {}".format(choice))
    else:
      print("The required number lies between {} and 1000".format(choice))
   
  # Correct choice
  else:
    print("You guessed the correct number after {} retries".format(retries))
    # User guessed the correct value
    # So let's end the infinite loop
    break;

このプログラムを実行するには、Python ファイルに保存します。ここでは、”guessing_game.py “という名前で保存しています。他の名前でも構いませんが、拡張子が.pyであることがPythonファイルであることを示します。

Pythonファイルをコマンドラインから実行します。お好みでIDEから実行することもできます。

python3 guessing_game.py
Guessing Game
Output of the CLI version of the Guessing Game

まとめ

これで、このチュートリアルの前半、コマンドライン版の実装は終わりです。次のチュートリアルのパートにご期待ください。GUI 版のゲームと、このような Python チュートリアルにご期待ください。

タイトルとURLをコピーしました