?
?
? L_BLIND = 'little_blind' # 小盲注 B_BLIND = 'big_blind' # 小盲注 SEAT = 'seat' HOLD = 'hold' # 手牌 ASK = 'ask' # ?
?
?
??
FIRST= 'first' # 第一次发三张牌 ????? TURN = 'turn' # 转牌 RIVER= 'river' # 河牌 ACT = 'act' # ?
???
HEI = 'hei' HONG = 'hong' MEI = 'mei' FANG = 'fang' LITTLE_BLIND_MONEY = 500 START_MONEY = 8000 START_BET = 2000 input_info = [ (SEAT, 2, 0), # 共2人,我是第0位,0位表示庄稼 (HOLD, [(HEI, 'A'), (HEI, 'K')]), (ACT, [0,]), # -1=放弃, 0=让(或跟), n=加n注 (FIRST, [(HEI, 'Q'), (HEI, 'J'), (HEI, '10')]), (ACT, [0, 1]), (TURN, [(HONG, '2'), ]), (ACT, [0, 1]), (RIVER, [(FANG, '3'), ]), (ACT, [0, 1]), ] def analyse_SEAT(one_info): person_cnt = one_info[1] my_seat = one_info[2] core = '' for i in range(person_cnt): if my_seat == i: pid = 3001 else: pid = 9001+i if i == 0: extra_info = BUTTON elif i == 1: extra_info = L_BLIND elif i == 2: extra_info = B_BLIND else: extra_info = '' this_line = '{0} {1}: {2} {3} \n'.format(extra_info, pid, START_BET, START_MONEY) # ?????? core += this_line return SEAT+'/ \n'+ core +'/'+SEAT + ' \n' def analyse_HOLD(one_info): ''' hold\ HEI 10 MEI 9 \hold ''' body_info = one_info[1] return '''{0}\ {1} {2} {3} {4} \{0} '''.format(HOLD, body_info[0][0], body_info[0][1], body_info[1][0], body_info[1][1], ) def analyse_FIRST(one_info): body_info = one_info[1] return '''{0}\ {1} {2} {3} {4} {5} {6} \{0} '''.format(FIRST, body_info[0][0], body_info[0][1], body_info[1][0], body_info[1][1], body_info[2][0], body_info[2][1], ) def analyse_TURN(one_info): body_info = one_info[1] return '''{0}\ {1} {2} \{0} '''.format(TURN, body_info[0][0], body_info[0][1], ) def analyse_RIVER(one_info): body_info = one_info[1] return '''{0}\ {1} {2} \{0} '''.format(RIVER, body_info[0][0], body_info[0][1], ) # ????? def get_pid(i): return 9001 + i def analyse_ACT(one_info): ''' ASK\ 9001: 0 8000 500 call total: xxxx \ASK ''' core = '' for i,itm in enumerate(one_info[1]): if 0 == itm: extra_info = 'check' pay = LITTLE_BLIND_MONEY # ???? elif -1 == itm: # ???? 有人弃牌会引发组装错误 extra_info = 'fold' pay = 0 else: extra_info = 'raise' pay = LITTLE_BLIND_MONEY*itm pid = get_pid(i) cur_bet = 500 # ????
须要动态获取 cur_money = 8000 this_line = '{0}: {1} {2} {3} {4} \n'.format( pid, cur_bet, cur_money, pay, extra_info) core += this_line total_pot = 1000 # ?
?
???
rtn = ''' {0}\ {1}total: {2} \{0} '''.format(ASK, core, total_pot) # ??
???
??
?
return rtn def analyse_one(one_info): type = one_info[0] if type == SEAT: rtn = analyse_SEAT(one_info) elif type == HOLD: rtn = analyse_HOLD(one_info) elif type == FIRST: rtn = analyse_FIRST(one_info) elif type == TURN: rtn = analyse_TURN(one_info) elif type == RIVER: rtn = analyse_RIVER(one_info) elif type == ACT: rtn = analyse_ACT(one_info) else: print 'type error' return rtn def analyse(all_info): rtn = '' for itm in all_info: rtn += analyse_one(itm) return rtn print analyse(input_info)
转载于:https://www.cnblogs.com/bhlsheji/p/5322768.html
相关资源:DLT698-45协议调试工具