Python(Eカードゲーム)

python

今回は受講生(K氏)の作成したお題を作成してみよう。どこかで見たことある設定だな。。。と思ったら「賭博黙示録カイジ」に出てきたゲームですね!
OK,では作ってみましょう!

目的

[ゲーム内容]
○「皇帝」「市民」「奴隷」の3種類のカードが登場します
○プレイヤーは「市民」4枚、「奴隷」1枚のカードを所持しています
○コンピューターは「市民」4枚、「皇帝」1枚のカードを所持しています
○コンピューターとプレイヤーが出したカードの相性で勝敗が決まります
○「皇帝」は「市民」に勝ち、「市民」は「奴隷」に勝ち、「奴隷」は「皇帝」に勝ちます
○「市民」と「市民」では引き分けになるため、再度勝負になります
○その際、使用した「市民」のカードはなくなります

仕様

◯処理を作成する際、コンピュータが出すカードの順番はランダムとする
◯>>enterと出力してエンターキーの入力があった場合に処理が進むようにする
◯正常系のみを考慮すればよい。(ユーザーは必ず0か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: 皇帝
あなたの勝ち!
Congratulations!

Let’s challenge!

3すくみなので基本的にはジャンケンの作成に似ているが、カードの枚数が限定されているため、リストの演習にもなりそうだ。挑戦してみよう。

解答例

import random

user_cards = ["市民"] * 4 + ["奴隷"]
pc_cards = ["市民"] * 4 + ["皇帝"]
print("ようこそeカードゲームへ")

for i in range(1, len(user_cards) + 1):
    input(">>enter")
    print(f"{i} 戦目")
    print(f"手持ちのカード: 市民 {len(user_cards)-1} 枚 奴隷 1 枚")
    select = int(input("カード選択:「市民」なら「0」、「奴隷」なら「1」を入力>>"))
    print("カードオープン!")
    input(">>enter")
    if select == 0:
        user = user_cards.pop(0)
    else:
        user = user_cards.pop()

    pc = pc_cards.pop(random.randrange(len(pc_cards)))

    print(f"あなた: {user} PC: {pc}")
    if user == pc:
        print("引き分け")
        continue

    if user == "奴隷" and pc == "皇帝":
        print("あなたの勝ち!")
        print("Congratulations!")
    else:
        print("あなたの負け!")
        print("GAME OVER")
    break
python
スポンサーリンク
シェアする
mjpurinをフォローする

コメント

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