test = results[handID][middle][0] # on va tester c par rapport à ce caractère TEST = key_vote_lib.posToString( test, kbd ) pair = ( c, test ) if c in win and test in win: # touches gagnantes au même niveau res = None ires = 0 elif c in win: # touches gagnantes gagnent contre toutes les autres touches res = None ires = 1 elif test in win: # touches gagnantes gagnent contre les autres touches res = None ires = 2 else: key_vote_lib.printKbdLayout(kbd, (C,TEST) ) key_vote_lib.printStdOut( u"1: %s 2: %s 0: égalité Q: quitter (%i touches restantes sur cette main)" % ( C, TEST, len(untested) ) ) res = key_vote_lib.readResult( 'vote: ', ['0', '1', '2', 'Q', C, TEST] ) ires = key_vote_lib.zeroOneTwo( res ) if res == 'Q': run = False if ires == 1 or res == C: # le caractère est meilleur que le milieu min = middle+1 # le minimum est maintenant après le milieu if max < min: results[handID].insert(middle+1, (c,)) # insertion avant le milieu matchs[pair] = 1 elif ires == 2 or res == TEST: # le caractère est moins bon que le milieu max = middle-1 # le maximum est avant le milieu if max < min:
s1 = key_vote_lib.posToString( pair[0], hands ) s2 = key_vote_lib.posToString( pair[1], hands ) if pair not in results: nbOfSearch = 0 if candidate1 in homePos and candidate2 not in homePos : results[ pair ] = 1 key_vote_lib.printStdOut( 'Vote automatique: ' + key_vote_lib.posToString( candidate1, hands ) + ' > ' + key_vote_lib.posToString( candidate2, hands ) ) elif candidate2 in homePos and candidate1 not in homePos : results[ pair ] = 2 key_vote_lib.printStdOut( 'Vote automatique: ' + key_vote_lib.posToString( candidate1, hands ) + ' < ' + key_vote_lib.posToString( candidate2, hands ) ) elif candidate2 in homePos and candidate1 in homePos : results[ pair ] = 0 key_vote_lib.printStdOut( 'Vote automatique: ' + key_vote_lib.posToString( candidate1, hands ) + ' = ' + key_vote_lib.posToString( candidate2, hands ) ) else: # not automatic vote key_vote_lib.printKbdLayout(hands, (s1,s2) ) key_vote_lib.printStdOut() key_vote_lib.printStdOut( u" Duel : %(redColor)s%(s1)s%(noColor)s contre %(redColor)s%(s2)s%(noColor)s" % {"s1": s1.upper(), "s2": s2.upper(), "redColor": key_vote_lib.redColor, "noColor": key_vote_lib.noColor } ) key_vote_lib.printStdOut() key_vote_lib.printStdOut() key_vote_lib.printStdOut( u"%(s1)s ou 1-> %(s1)s %(s2)s ou 2-> %(s2)s 0-> égalité Q-> quitter A-> annuler un duel T-> annuler des duels d'une touche" % {"s1": s1, "s2": s2 } ) key_vote_lib.printStdOut( u" %i duels réalisés / 556 possibles" % len( results ) ) res = key_vote_lib.readResult( 'vote: ', ['Q', '0', '1', '2', s1, s2, 'A', 'T'] ) ires = key_vote_lib.zeroOneTwo( res ) if res == 'Q': # Q run = False break elif ires!=None: # 0, 1, 2 results[ pair ] = ires