2024年12月18日 星期三

99 Game

 d = []

for i in range(4):  # 輸入四位玩家的牌組

    d.append(input().split()[1:])


rFlag = False  # 遊戲結束旗標

s = [0, 0, 0, 0]  # 各玩家累加數字

direction = 1  # 出牌方向 (1: 正向, -1: 反向)

j = 0  # 玩家索引


while not rFlag:  # 主遊戲迴圈

    if len(d[j]) == 0:  # 若玩家手牌耗盡

        print('ABCD'[j])  # 該玩家為贏家

        print(s[j])  # 輸出累加數字

        break


    card = d[j].pop(0)  # 取出玩家當前要出的牌


    # 處理卡牌效果

    if card not in ['A', '4', '5', '10', 'J', 'Q', 'K']:

        s[j] += int(card)

    elif card == 'A':  # 歸零

        s[j] = 0

    elif card == 'K':  # 設為 99

        s[j] = 99

    elif card == '4':  # 改變出牌方向

        direction *= -1

    elif card == '10':  # 加減 10

        s[j] += 10 if s[j] + 10 <= 99 else -10

    elif card == 'Q':  # 加減 20

        s[j] += 20 if s[j] + 20 <= 99 else -20


    # 檢查遊戲是否結束

    if s[j] > 99:  # 若累加數字超過 99

        print('ABCD'[j])  # 該玩家為輸家

        print(len(d[j]))  # 輸出剩餘手牌數

        break


    # 計算下一位玩家索引

    j = (j + direction + 4) % 4


# STDIN

# A 8 9 K 7 5 J Q 2 A 10 4 J 5

# B 2 3 J 5 7 4 4 10 7 9 8 J A

# C 7 3 4 A 9 10 9 6 8 K 10 Q 2

# D 6 3 Q 9 8 3 5 K Q K 2 A 10


# Output:


# A

# 9

沒有留言:

張貼留言