Competició

Es disputa un torneig d’escacs entre estudiantat de la universitat. La informació que tenim per a cada estudiant es guarda en una llista que conté el nom de l’estudiant, el nombre de victòries, el nombre de taules, el nombre de derrotes i el nombre d’incompareixences. Per exemple, ['Joan Joanet', 6, 3, 2, 1] ens diu que l’estudiant és en 'Joan Joanet' ha guanyat 6 partides, ha fet 3 taules, n’ha perdut 2 i no s’ha presentat a una partida. Els punts que li correspon a cada jugador/a es calculen com les victòries per tres menys les derrotes multiplicades per dos menys les no compareixences per 4. És a dir al 'Joan Joanet' li corresponen 6*3-2*2-1*4 punts, per tant, 10 punts.

  1. Dissenya la funció guanyadors que donada una llista de subllistes amb la informació dels resultats de les partides d’escacs d’un jugador, retorna una llista amb tres subllistes. Cada subllista conté dos elements: un enter punts_totals_jug que representa els punts que ha fet un jugador segons el càlcul anterior i un string amb el nom del jugador. Les tres subllistes correspondran als tres jugadors que han fet més punts ordenats decreixentment.

    Desa la funció al fitxer competicio.py. La funció ha de passar el següent doctest:

    >>> l=[['Joan Joanet', 6, 3, 2, 1], ['Maria Mar', 8, 1, 0, 0], ['Pere', 5, 4, 2, 2]]
    
    >>> guanyadors(l)
    [[24, 'Maria Mar'], [10, 'Joan Joanet'], [3, 'Pere']]
    
    >>> l.append(['Silvia C', 5, 5, 1, 0])
    
    >>> guanyadors(l)
    [[24, 'Maria Mar'], [13, 'Silvia C'], [10, 'Joan Joanet']]
    
    >>> l.append(['Josep M.', 2, 5, 1, 3])
    
    >>> guanyadors(l)
    [[24, 'Maria Mar'], [13, 'Silvia C'], [10, 'Joan Joanet']]
    

    Nota

    Pots descarregar el fitxer amb tests test-competicio.txt

Disposes d’una solució al fitxer competicio.py