Pythonでクイズゲームを作る方法

ページ名:Pythonでクイズゲームを作る方法

Pythonを学びたいなら、簡単なテキストベースのゲームから始めるのが良いでしょう。この記事ではクイズゲームの作り方を紹介します。

  • 1
    の作り方を紹介します。Pythonには大きく分けて2つのバージョンがあります:Python 2とPython 3です。Python 2とPython 3は互換性がなく、Python 2のサポートは2020年に終了します。
  • 2
    テキストエディタまたはPython IDEで新しいファイルを開きます。.pyで終わるわかりやすい名前をつけてください。
  • 3
    randomライブラリをインポートします。可能性のある答えをランダムに並べるために必要です。
  • 4
    QA "クラスを定義する。QA "は質問と正解、そして他の答えのリストから構成されます。この__init__()関数は、QA()関数で新しいQAオブジェクトを作成するたびに呼び出され、その引数は対応する属性に渡されます。その引数は対応する属性に渡されます:
    class QA: def __init__(self, question, correctAnswer, otherAnswers): self.question = question self.corrAnswer = correctAnswer self.otherAnswer = otherAnswers
  • 5
    QAのリストを作成する。正解と不正解がある問題をいくつか考えてください。それぞれからQAオブジェクトを作成し、リストに入れます。リストはかなり長くなるので、読みやすくするために複数行に分けることができます。これはすべて以下のコードで行います(テキストは異なる可能性があります):
    qaList = [QA("ミンスクはどこですか?", "ベラルーシの", ["ロシアの", "そのような都市は存在しません"]), QA("オーストラリアの首都はどこですか?", "キャンベラ", ["シドニー", "ニューヨーク", "オーストラリアは存在しません"]), QA("次のうち地球にないものはどれですか?", "静かの海", "地中海", "バルト海", "北海"), QA("次のうち大陸でないものはどれですか?", "北極大陸", "南極大陸", "アメリカ大陸"), QA("次のうちアフリカの国でないものはどれですか?", "マレーシア", "マダガスカル", "ジブチ", "南アフリカ", "ジンバブエ")].
  • 6
    正解数をカウントする変数を追加する。最初にゼロをセットする。行を追加する:
    corrCount = 0
  • 7
    QAリストをシャッフルします。これはあなたの質問をランダムな順序で表示します。これは以下の関数で行います:
    random.shuffle(qaList)
  • 8
    ループを作成します。プログラムはリストの各項目を見て、それに対して何かをしなければならない。次の式でそのようなループを作る:
    for qaItem in qaList:
  • 9
    各質問を出力する。ループ式の後に、行を書きます:
    print(qaItem.question)
  • 10
    すべての可能な答えを出力してください。正しい答えが常に同じ位置にあるとは限らないように、それらはランダムな順序で表示されなければなりません。また、ユーザがすべての答えを再度入力する必要がないように、答えの前に数字を付ける必要があります。以下のコードはこれを行います:
    print("Possible answers are:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # 角括弧は正解を他のリストと連結するためのリストに変える random.shuffle(possible) count = 0 # リストのインデックスはpythonでは0から始まる while count < len(possible): print(str(count+1) + ": " + possible[count]) count += 1
  • 11
    ユーザーの入力を受けるまず、ユーザーにその数を入力しなければならないことを伝える。次に、ユーザーが入力した数字が本当に答えに対応する数字かどうかをチェックする。もしそうでなければ、もう一度ユーザーに伝える。このコードを(出力用に作ったwhileループの外で)使ってください:
    print("Please enter the number of your answer:") userAnsw = input() while not userAnsw.isdigit(): print("That was not a number. Please enter the number of your answer:") userAnsw = input() userAnsw = int(userAnsw) while not (userAnsw > 0 and userAnsw <= len(possible)): print("That number doesn't correspond to any answer.あなたの答えの番号を入力してください:") userAnsw = input()
  • 12
    ユーザーの答えが正しいかどうかをチェックする。これを行うには、ユーザーが数字を入力した答えのテキストを取得し、正しい答えのテキストと比較します。もし両者が同じなら、ユーザーの答えは正しく、変数corrCountを1増やす必要がある。最後に空行を表示し、次の問題までのスペースを追加します。次のコードを入力してください:
    if possible[userAnsw-1] == qaItem.corrAnsw: print("Your answer was correct.") corrCount += 1 else: print("Your answer was wrong.") print("Correct answer was: " + qaItem.corrAnsw) print("")
  • 13
    結論を出力する。最終的に、ユーザーは何問正解したかを知りたいでしょう。そこで、for-loopの外に次の式を追加して教えてあげましょう:
    print("You answered " + str(corrCount) + " of " + str(len(qaList)) + " 問正解しました。+ " 問題に正解しました。")
  • 14
    コードをチェックしてください。インデントに特に注意してください。あなたの完全なコードは次のようになるはずです:
    import random class QA: def __init__(self, question, correctAnswer, otherAnswers): self.question = question self.corrAnswer = correctAnswer self.otherAnswer = otherAnswers qaList = [QA("Where is Minsk?", "in Belarus", ["in Russia", "such a city doesn't exist"]), QA("What is the capital of Australia?", "キャンベラ", ["シドニー", "ニューヨーク", "オーストラリアは存在しない"]), QA("次のうち、地球上にないものはどれですか?", "静かの海", ["地中海", "バルト海", "北海"]), QA("次のうち、大陸でないものはどれですか?", "Arctica", ["Antarctica", "America"]), QA("Which of the following is not an African country?", "Malaysia", ["Madagascar", "Djibouti", "South Africa", "Zimbabwe"])] corrCount = 0 random.shuffle(qaList) for qaItem in qaList: print(qaItem.question) print("Possible answers are:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # 角括弧は正解を他のリストと連結するためのリストにする random.shuffle(possible) count = 0 # list indexes start at 0 in python while count < len(possible): print(str(count+1) + ": " + possible[count]) count += 1 print("Please enter the number of your answer:") userAnsw = input() while not userAnsw.isdigit(): print("それは数字ではありません。 あなたの答えの数字を入力してください:") userAnsw = input() userAnsw = int(userAnsw) while not (userAnsw > 0 and userAnsw <= len(possible)): print("その数字はどの答えにも対応していません。あなたの答えの番号を入力してください:") userAnsw = input() if possible[userAnsw-1] == qaItem.corrAnsw: print("あなたの答えは正解でした。") corrCount += 1 else: print("あなたの答えは間違っていました。") print("正解は: " + qaItem.corrAnsw) print("") print("あなたは" + str(corrCount) + " of " + str(len(qaList)) に答えました。+ " 問題に正解しました。")
  • 15
    コードを実行する。IDEを使用している場合は、"Run "シンボルまたはメニュー項目をクリックしてください。テキストエディタを使っている場合は、プログラムを保存してエディタを閉じ、Pythonでプログラムを開いてください。
  • この記事はCC BY-NC-SAで公開されている " How to Make a Quiz Game in Python " を改変して作成しました。特に断りのない限り、CC BY-NC-SAで利用可能です。

    シェアボタン: このページをSNSに投稿するのに便利です。

    コメント

    返信元返信をやめる

    ※ 悪質なユーザーの書き込みは制限します。

    最新を表示する

    NG表示方式

    NGID一覧