def testWinRate(list, showCards='', totalNum=1000, toDealNum=None): assert len(list) >= 2 deck = Deck() ls = [] players = [] for s in list: p1 = Player() if type(s) == str: p1.hands = Card.arrayFromString(s) elif type(s) == Player: p1 = s else: raise 'Error' players.append(p1) deck.removeCardsFromPlayers(players) sl = Card.arrayFromString(showCards) deck.showList.extend(sl) deck.removeCards(sl) winNum = caculcateWinRateBy(deck, players, totalNum, toDealNum) if __name__ == '__main__': for player in players: print('%s %.1f' % (str(player.hands[0]) + str(player.hands[1]), player.winRate * 100) + '%', end=' ') return winNum
def testWinRate(handsList, showCards=''): assert len(handsList) >= 2 deck = Deck() ls = [] players = [] for s in handsList: p1 = Player() p1.hands = Card.arrayFromString(s) players.append(p1) deck.removeCardsFromPlayers(players) sl = Card.arrayFromString(showCards) deck.showList.extend(sl) deck.removeCards(sl) winRateList = caculcateWinRateBy(deck, players) for player in players: print( '%s %.1f' % (str(player.hands[0]) + str(player.hands[1]), player.winRate * 100) + '%', end=' ')
def topHandsResult(k=0.25): if type(k) == float: k = int(169 * k) ratedb = mongo.generateDB(rangee='169') res = ratedb.find({}).sort([('winRate0', -1)]) handsResult = set() for i in range(0, k): hands = Card.arrayFromString(res[i]['hands']) handsResult.add(hands) if __name__ == '__main__': print(res[i]['hands'], end=' ') return handsResult