Python(宝さがしゲーム)

python

今回は受講生(S氏)の作成したお題を作成してみよう。ひと目簡単そうなのですがどのようにアプローチしていくかで大変さが変わってきます。

問題

下記のような出力結果になるように作成してください。

選択済みの場所を選んだ場合も試行回数にカウントされます。
当たりの際の表の表記は大文字のO(オー)で表示しています。

*今回は正常系のみを考慮すればOKです。

実行例

****宝探し****
123
456
789
好きな場所の数字を選んで入力してください>>1
ハズレです。ここより大きな数字の場所にあります
X23
456
789
好きな場所の数字を選んで入力してください>>9
ハズレです。ここより小さな数字の場所にあります
X23
456
78X
好きな場所の数字を選んで入力してください>>1
選択済みの場所です
X23
456
78X
好きな場所の数字を選んで入力してください>>5
ハズレです。ここより大きな数字の場所にあります
X23
4X6
78X
好きな場所の数字を選んで入力してください>>7
お宝を見つけました!
X23
4X6
O8X
あなたはお宝を5回で発見しました!

Let’s challenge!

元のデータをどう作るかがポイントですね。まずは実現できることを目標に頑張ってください!

解答例

import random

data = [i for i in range(1, 10)]


def showData():
    for i in range(len(data)):
        print(data[i], end="")
        if (i + 1) % 3 == 0:
            print()


ans = random.choice(data)
count = 0
while True:
    count += 1
    showData()
    index = int(input("好きな場所の数字を選んで入力してください>>")) - 1
    if data[index] == "X":
        print("選択済みの場所です")
        continue

    if data[index] == ans:
        print("お宝を見つけました!")
        data[index] = "O"
        break

    hint = "大きな" if data[index] < ans else "小さな"
    print(f"ハズレです。ここより{hint}数字の場所にあります")
    data[index] = "X"

showData()
print(f"あなたはお宝を{count}回で発見しました!")
python
スポンサーリンク
シェアする
mjpurinをフォローする

コメント

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