Python(戦車爆破ゲーム)

python

今回は受講生(U氏)の作成したお題を作成してみよう。こういったターン制のゲームも多いので良い練習となる。

目的

[ゲームの内容を以下のようにします]
○行動一回につき、1日が経過します。最大で100日を迎えると終戦となり、ゲームは終了します。
○1日の行動では1〜15輌の戦車を撃破できます。
○戦車破壊後、1%の確率でプレイヤーは死亡し、ゲームは終了します。
○同じく、戦車撃破後の10%で怪我を負います。
○怪我を負うと6日間の入院を余儀なくされ、入院中は戦車を撃破することができなくなります。
○行動終了後、次の日に移る際にメッセージを表示しますが、行動可能時と入院時でメッセージが変わります。
○1日の行動終了後、Enterキーで次の日の行動に移ります。
○ゲームが終了後、戦車の撃破数によって勲章を授与されます。

爆破数
100未満 鉄十字勲章
200未満 騎士鉄十字勲章
300未満 柏葉付騎士鉄十字勲章
400未満 柏葉・剣付騎士鉄十字勲章
500未満 柏葉・ 剣・ダイヤモンド付騎士鉄十字勲章
500以上 黄金柏葉・剣・ダイヤモンド付騎士鉄十字勲章

ex)429の場合500未満なので「柏葉・ 剣・ダイヤモンド付騎士鉄十字勲章」

勲章には以下の文字列をご使用ください。

['鉄十字勲章','騎士鉄十字勲章','柏葉付騎士鉄十字勲章','柏葉・剣付騎士鉄十字勲章','柏葉・ 剣・ダイヤモンド付騎士鉄十字勲章','黄金柏葉・剣・ダイヤモンド付騎士鉄十字勲章']

実行例

1日目の行動
出撃!!
戦功報告:7輌の戦車を撃破しました!
明日も頑張りましょう!(Enter)

2日目の行動
出撃!!
戦功報告:7輌の戦車を撃破しました!
明日も頑張りましょう!(Enter)

3日目の行動
出撃!!
戦功報告:10輌の戦車を撃破しました!
明日も頑張りましょう!(Enter)

4日目の行動
出撃!!
戦功報告:3輌の戦車を撃破しました!
あなたは撃墜され、怪我をしてしまいました。6日間の入院が必要です
今は休んでくださいね(Enter)

5日目の行動
後6日の入院が必要です
今は休んでくださいね(Enter)

6日目の行動
後5日の入院が必要です
今は休んでくださいね(Enter)

.
.
.

37日目の行動
出撃!!
戦功報告:1輌の戦車を撃破しました!
あなたは戦死してしまいました...
最終戦果報告!!あなたは94輌の戦車を破壊した功績により騎士鉄十字勲章を授与されました!!

※以下は100日経過後の出力

100日目の行動
後5日の入院が必要です
今は休んでくださいね(Enter)

戦争は終結しました!!
最終戦果報告!!あなたは529輌の戦車を破壊した功績により黄金柏葉・剣・ダイヤモンド付騎士鉄十字勲章を授与されました!!

Let’s challenge!

どのように実装していくか少し思案するところもあるが、問題なく処理を組むことができる。DRYの原則「同じことを2度書かない」を留意してコーディングしよう。

解答例

import random
damage=0
MAX_DAYS=100
total_kill=0
titles=['鉄十字勲章','騎士鉄十字勲章','柏葉付騎士鉄十字勲章','柏葉・剣付騎士鉄十字勲章','柏葉・ 剣・ダイヤモンド付騎士鉄十字勲章','黄金柏葉・剣・ダイヤモンド付騎士鉄十字勲章']

for day in range(1,MAX_DAYS+1):
	if damage > 0: damage-=1
	print(f'{day}日目の行動')
	if damage > 0:
		print(f'後{damage}日の入院が必要です')
	else:
		print('出撃!!')
		kill=random.randint(1,15)
		print(f'戦功報告:{kill}輌の戦車を撃破しました!')
		total_kill+=kill
		i=random.randrange(100)
		if i==0:
			print('あなたは戦死してしまいました...')
			break;
		if 1<= i <= 10:
			damage=7
			print(f'あなたは撃墜され、怪我をしてしまいました。{damage-1}日間の入院が必要です')
	print('今は休んでくださいね' if damage > 0 else '明日も頑張りましょう!')
	#input()
else:
	print('戦争は終結しました!!')
print(f'最終戦果報告!!あなたは{total_kill}輌の戦車を破壊した功績により{titles[min(total_kill//100,5)]}を授与されました!')
python
スポンサーリンク
シェアする
mjpurinをフォローする
ジョイタスネット

コメント

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