今回は受講生(K氏)の作成したお題を作成してみよう。どこかで見たことある設定だな。。。と思ったら「賭博黙示録カイジ」に出てきたゲームですね!
OK,では作ってみましょう!
目的
[ゲーム内容]
○「皇帝」「市民」「奴隷」の3種類のカードが登場します
○プレイヤーは「市民」4枚、「奴隷」1枚のカードを所持しています
○コンピューターは「市民」4枚、「皇帝」1枚のカードを所持しています
○コンピューターとプレイヤーが出したカードの相性で勝敗が決まります
○「皇帝」は「市民」に勝ち、「市民」は「奴隷」に勝ち、「奴隷」は「皇帝」に勝ちます
○「市民」と「市民」では引き分けになるため、再度勝負になります
○その際、使用した「市民」のカードはなくなります
実行例
実行例1
ようこそeカードゲームへ
>>enter
1 戦目
手持ちのカード: 市民 4 枚 奴隷 1 枚
カード選択:「市民」なら「0」、「奴隷」なら「1」を入力>>0
カードオープン!
>>enter
あなた: 市民 PC: 市民
引き分け!
>>enter
2 戦目
手持ちのカード: 市民 3 枚 奴隷 1 枚
カード選択:「市民」なら「0」、「奴隷」なら「1」を入力>>0
カードオープン!
>>enter
あなた: 市民 PC: 皇帝
あなたの負け!
GAME OVER
実行例2
ようこそeカードゲームへ
>>enter
1 戦目
手持ちのカード: 市民 4 枚 奴隷 1 枚
カード選択:「市民」なら「0」、「奴隷」なら「1」を入力>>0
カードオープン!
>>enter
あなた: 市民 PC: 市民
引き分け
>>enter
2 戦目
手持ちのカード: 市民 3 枚 奴隷 1 枚
カード選択:「市民」なら「0」、「奴隷」なら「1」を入力>>1
カードオープン!
>>enter
あなた: 奴隷 PC: 皇帝
あなたの勝ち!
Congratulation!
Let’s challenge!
3すくみなので基本的にはジャンケンの作成に似ているが、カードの枚数が限定されているため、リストの演習にもなりそうだ。挑戦してみよう。
解答例
import random
cards=['市民','奴隷','皇帝']
user_cards=[0,0,0,0,1]
pc_cards=[0,0,0,0,2]
random.shuffle(pc_cards)
count=0
print('ようこそeカードゲームへ')
while True:
input('>>enter')
count+=1;
print(count,'戦目')
print('手持ちのカード: 市民',user_cards.count(0),'奴隷:',user_cards.count(1))
user_card=int(input('カード選択:「市民」なら「0」、「奴隷」なら「1」を入力>>'))
user_cards.remove(user_card)
print('カードオープン!')
input('>>enter')
pc_card=pc_cards.pop()
print('あなた:',cards[user_card],'PC:',cards[pc_card])
if user_card==pc_card:
print('引き分け!')
continue
elif user_card==1 and pc_card==2:
print('あなたの勝ち!')
print('Congratulation!')
else:
print('あなたの負け!')
print('GAME OVER')
break
コメント