今回は受講生(H氏)の作成したお題を作成しよう。サイコロを振るだけでお金が入ってくるなんとも羨ましい夢のようなすごろくだ。
問題
・すごろくのゴール地点を決める(15マス)
・サイコロの目を1~6までランダムで出し、出た目分進む
・ランダムで獲得金額を決める(-500万円~+900万円)
・獲得金額がマイナスの場合は「ビジネスに失敗」プラスの時は「ビジネスに成功」
(0のときは表示なし)
・ゴールするまで繰り返し、獲得金額を表示する
実行例
実行例1
15マスでゴール!資産はいくら増えるかな?
サイコロを振るy/n(nで終了)>y
2の目が出た。2マス進む
ビジネスに成功!600万円獲得した
現在資産600万円。ゴールまであと13マスです
サイコロを振るy/n(nで終了)>y
4の目が出た。4マス進む
現在資産600万円。ゴールまであと9マスです
サイコロを振るy/n(nで終了)>y
2の目が出た。2マス進む
ビジネスに成功!400万円獲得した
現在資産1000万円。ゴールまであと7マスです
サイコロを振るy/n(nで終了)>y
1の目が出た。1マス進む
ビジネスに成功!500万円獲得した
現在資産1500万円。ゴールまであと6マスです
サイコロを振るy/n(nで終了)>y
3の目が出た。3マス進む
ビジネスに成功!600万円獲得した
現在資産2100万円。ゴールまであと3マスです
サイコロを振るy/n(nで終了)>y
1の目が出た。1マス進む
ビジネスに成功!100万円獲得した
現在資産2200万円。ゴールまであと2マスです
サイコロを振るy/n(nで終了)>y
3の目が出た。3マス進む
ビジネスに失敗!-200万円損失した
ゴール!総資産は2000万円です
ゲーム終了
実行例2
15マスでゴール!資産はいくら増えるかな?
サイコロを振るy/n(nで終了)>y
2の目が出た。2マス進む
ビジネスに失敗!-200万円損失した
現在資産-200万円。ゴールまであと13マスです
サイコロを振るy/n(nで終了)>n
ゲーム終了
Let’s challenge!
変数と処理の流れを練習する基本的な問題だ。やってみよう!
解答例
import random
goal=15
total_money=0
print(f'{goal}マスでゴール!資産はいくら増えるかな?')
while goal>0:
select=input('サイコロを振るy/n(nで終了)>')
if select == 'n':
break
dice=random.randint(1,6)
print(f'{dice}の目が出た。{dice}マス進む')
goal-=dice;
money=random.randint(-5,9)*100
if money != 0:
if money>0:
print(f'ビジネスに成功!{money}万円獲得した')
else:
print(f'ビジネスに失敗!{money}万円損失した')
total_money+=money
if goal > 0:
print(f'現在資産{total_money}万円。ゴールまであと{goal}マスです')
else:
print(f'ゴール!総資産は{total_money}万円です')
print('ゲーム終了')
コメント