玩逻辑的,不难但是量大。只需要记录两个变量即可,一个是第一张牌的大小,一个是牌的类型。先比较牌的类型(炸弹,顺子,对子等),若类型相同则比较第一张牌的大小,若不同则按规则返回炸弹或者是ERROR。
while True:
try:
str1 = str(input())
lstr1 = len(str1)
flag = 0
jump = 0
jump2 = 0
kstr = 0
poke1 = []
poke2 = []
enter1 = 0
enter2 = 0
for i in range(lstr1):
if(str1[i] == ' '):
continue
if(str1[i] == '-'):
flag = 1
jump = 1
kstr = i
continue
if(flag == 0 and jump == 0 and enter1 == 0): #第一张牌
if('3' <= str1[i] <= '9'):
poke1.append(ord(str1[i]))
poke1.append(1)
elif(str1[i] == '1'):
poke1.append(58)
poke1.append(1)
elif(str1[i] == 'J'):
poke1.append(60)
poke1.append(1)
elif(str1[i] == 'Q'):
poke1.append(61)
poke1.append(1)
elif(str1[i] == 'K'):
poke1.append(62)
poke1.append(1)
elif(str1[i] == 'A'):
poke1.append(199)
poke1.append(1)
elif(str1[i] == '2'):
poke1.append(200)
poke1.append(1)
elif(str1[i] == 'j'):
poke1.append(250)
poke1.append(1)
enter1 = 1
elif(flag == 0 and jump == 0 and enter1 == 1): #第二张牌
if('3' <= str1[i] <= '9'):
if(ord(str1[i]) == poke1[0]):
poke1[1] += 1
elif(ord(str1[i]) - 1 == poke1[0]):
poke1[1] = 5
jump = 1
elif(str1[i] == '1'):
if(poke1[0] == 58):
poke1[1] += 1
elif(poke1[0] == 57):
poke1[1] = 5
jump = 1
elif(str1[i] == 'Q' ):
if(poke1[0] == 61):
poke1[1] += 1
elif(str1[i] == 'K'):
if(poke1[0] == 62):
poke1[1] += 1
elif(str1[i] == 'A'):
if(poke1[0] == 199):
poke1[1] += 1
elif(str1[i] == '2'):
if(poke1[0] == 200):
poke1[1] += 1
elif(str1[i] == 'J'):
if(poke1[0] == 60):
poke1[1] += 1
elif(poke1[0] == 250):
poke1[1] = 20
jump = 1
elif(poke1[0] == 58):
poke1[1] = 5
jump = 1
elif(str1[i] == 'O'):
poke1[0] = 300
poke1[1] = 1
jump = 1
elif(flag == 1 and jump2 == 0 and enter2 == 0): #第一张牌
if('3' <= str1[i] <= '9'):
poke2.append(ord(str1[i]))
poke2.append(1)
elif(str1[i] == '1'):
poke2.append(58)
poke2.append(1)
elif(str1[i] == 'J'):
poke2.append(60)
poke2.append(1)
elif(str1[i] == 'Q'):
poke2.append(61)
poke2.append(1)
elif(str1[i] == 'K'):
poke2.append(62)
poke2.append(1)
elif(str1[i] == 'A'):
poke2.append(199)
poke2.append(1)
elif(str1[i] == '2'):
poke2.append(200)
poke2.append(1)
elif(str1[i] == 'j'):
poke2.append(250)
poke2.append(1)
enter2 = 1
elif(flag == 1 and jump2 == 0 and enter2 == 1): #第二张牌
if('3' <= str1[i] <= '9'):
if(ord(str1[i]) == poke2[0]):
poke2[1] += 1
elif(ord(str1[i]) - 1 == poke2[0]):
poke2[1] = 5
jump2 = 1
elif(str1[i] == '1'):
if(poke2[0] == 58):
poke2[1] += 1
elif(poke2[0] == 57):
poke2[1] = 5
jump2 = 1
elif(str1[i] == 'Q' ):
if(poke2[0] == 61):
poke2[1] += 1
elif(str1[i] == 'K'):
if(poke2[0] == 62):
poke2[1] += 1
elif(str1[i] == 'A'):
if(poke2[0] == 199):
poke2[1] += 1
elif(str1[i] == '2'):
if(poke2[0] == 200):
poke2[1] += 1
elif(str1[i] == 'J'):
if(poke2[0] == 60):
poke2[1] += 1
elif(poke2[0] == 250):
poke2[1] = 20
jump2 = 1
elif(poke2[0] == 58):
poke2[1] = 5
jump2 = 1
elif(str1[i] == 'O'):
poke2[0] = 300
poke2[1] = 1
jump2 = 1
if(jump == 1 and jump2 == 1):
break
flag1 = 0
if(poke1[1] == poke2[1]):
if(poke1[0] > poke2[0]):
flag1 = 1
else:
flag1 = 2
elif(poke1[1] != poke2[1]):
if(poke1[1] == 20):
flag1 = 1
elif(poke2[1] == 20):
flag1 = 2
elif(poke1[1] != 20 and poke2[1] != 20):
if(poke1[1] == 4):
flag1 = 1
elif(poke2[1] == 4):
flag1 = 2
elif(poke1[1] != 4 and poke2[1] != 4):
print('ERROR')
if(flag1 == 1):
print(str1[0:kstr])
elif(flag1 == 2):
print(str1[kstr+1:])
except:
break


京公网安备 11010502036488号