玩逻辑的,不难但是量大。只需要记录两个变量即可,一个是第一张牌的大小,一个是牌的类型。先比较牌的类型(炸弹,顺子,对子等),若类型相同则比较第一张牌的大小,若不同则按规则返回炸弹或者是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