今回は受講生(H氏)の作成したお題を作成してリストやセットの理解を深めよう
問題
サイコロを3個振って出た目の合計を得点としてコンピューターと対戦するゲームを作成せよ。 ただし、サイコロの出目がすべて同じだった場合は得点を2倍にする
実行例
Enterで対決開始[Enter]
あなたの出目
[4,1,6]
コンピューターの出目
[2,6,6]
11対14であなたの負け
もう一度対決しますか?<y/n>>>y
あなたの出目
[2,2,2]
コンピューターの出目
[4,2,6]
12対12であいこ
もう一度対決しますか?<y/n>>>n
対決を終了します
Let’s challenge!
シンプル!ゾロ目かどうかの判定をどう行うかだね。ゾロ目=>1種類 …ということは…
解答例
import random
input('Enterで対決開始')
while True:
print('あなたの出目')
you=[random.randint(1,6) for i in range(3)]
print(you)
print('コンピュータの出目')
pc=[random.randint(1,6) for i in range(3)]
print(pc)
you_sum=sum(you)
if len(set(you)) == 1:
you_sum*=2
pc_sum=sum(pc)
if len(set(pc))==1:
pc_sum *=2
result='あいこ' if you_sum == pc_sum else 'あなたの勝ち' if you_sum > pc_sum else 'あなたの負け'
print(f'{you_sum}対{pc_sum}で{result}')
select=input('もう一度対決しますか?<y/n>>>')
if select != 'y':
break
print('対決を終了します')
コメント