今回は受講生(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}回で発見しました!")
コメント