今回は受講生(S氏)の作成したお題を作成してみよう。ひと目簡単そうなのですがどのようにアプローチしていくかで大変さが変わってきます。
問題
下記のような出力結果になるように作成してください。
選択済みの場所を選んだ場合も試行回数にカウントされます。
当たりの際の表の表記は大文字のO(オー)で表示しています。
実行例
****宝探し****
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():
global data
for i in range(len(data)):
print(data[i],end='')
if (i+1) %3 ==0:
print()
ans=random.randint(1,9)
showData()
count=0
while True:
count+=1
index=int(input('好きな場所の数字を選んで入力してください>>'))-1
if data[index]==ans:
print('お宝を見つけました!')
data[index]='O'
showData()
break
elif data[index]=='X':
print('選択済みの場所です')
else:
print('ハズレです。ここより{}数字の場所にあります'.format('大きな' if ans>data[index] else '小さな'))
data[index]='X'
showData()
print(f'あなたはお宝を{count}回で発見しました!')
コメント