小Byte和小Dance玩一种叫“开火车的”纸牌游戏,游戏规则如下:
1.初始给两人随机平分52张扑克牌,每个人26张;
2.小Byte先开始,将第一张牌放下;
3.随后两人轮流按序(按从第一张到最后一张的顺序出牌,手中牌的顺序不可以被打乱)放置扑克,后一张扑克压在前一张扑克上;
4.如果出现之前放下的某张扑克s和将要放下的扑克t点数相同,则当前玩家获得从s到t之间所有的牌(包括s和t这两张);
5.玩家手上26张牌都出完后,清点双方获得的牌数,牌数多的玩家获胜,若相同,则平局。
输入描述:
输入包括两行,每行26个数字,分别表示两位玩家初始被随机分配的点数,第一行为小byte分到的牌。
输出描述:
若平局,则输出"Draw",否则输出获胜玩家的名字(“Byte”或"Dance").
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Byte = [10, 2, 5, 6, 13, 11, 11, 4, 10, 8, 12, 5, 4, 1, 8, 1, 7,12, 4, 13, 6, 9, 9, 9, 5, 7]
Dance = [6, 3, 13, 8, 2, 3, 7, 3, 2, 2, 12, 11, 10, 6, 10, 1, 1, 12, 3, 5, 7, 11, 13, 4, 8, 9]
# Byte = raw_input()
# Dance = raw_input()
# Byte = int(Byte.split(' '))
# Dance = int(Dance.split(' '))
nu_Byte = 0 # 统计
nu_Dance = 0
i = 0
common = []
for j in Byte:
if j not in common:
common.append(j)
else:
index = common.index(j) # 找出此牌第一次出现的位置索引
current_Byte = len(common) - index # 计算Byte此次可以回收多少张牌
nu_Byte += current_Byte
for a in range(current_Byte):
common.pop() # 删除Byte回收过的牌
if Dance[i] not in common:
common.append(Dance[i])
i += 1
else:
index = common.index(Dance[i]) # 找出此牌第一次出现的位置索引
current_Dance = len(common) - index # 计算Dance此次可以回收多少张牌
nu_Dance += current_Dance
for b in range(current_Dance):
common.pop() # 删除Dance回收过的牌
if nu_Byte == nu_Dance:
print('Draw')
elif nu_Byte < nu_Dance:
print('Dance')
else:
print('Byte')