Il problema è, fondamentalmente, l'articolazione dell'algoritmo, studiatelo per bene, come impostato non va proprio.
In particolare, una funzione dovrebbe limitarsi all'aspetto specifico della sua "funzionalità", mi riferisco, in particolare alla Tua funzione "somma", che dovrebbe sommare i punteggi e basta (a proposito, i punteggi di fante, cavallo e re valgono mezzo punto nel 7-1/2) nella Tua ci metti anche la logica di estrazione, oltre tutto condizionata dal valore di una variabile "n" che non vedo valorizzata da nessuna parte ... o manca un bel pezzo di codice (e così è impossibile dare un qualsiasi parere), o non è proprio definita (e così il software indicato NON può proprio funzionare, altro che dare il "return", che lo "darebbe" solo se le condizioni "m<7" ed "a==n" fossero vere, altrimenti no; ammesso cge il Tuo codice "completo" possa funzionare, trovi qui il problema.
... poi, trova la documentazione sui "parametri" delle funzioni e studiateli per bene, li utilizzi in maniera impropria.
Inoltre, copio un consiglio che da spesso chi ne sa più di me : scrivi su carta le fasi che devi realizzare nel Tuo programma, cose se effettivamente giocassi a carte, non considerare il "programma", solo il gioco ... se lo fai vedrai che le carte le da comunque il mazziere, e che sei sempre in presenza di una "estrazione", vedrai che trovi delle ridondanze nel Tuo primo pensiero ... vedrai, anche, che una estrazione è "casuale" e, magari ti andrai a vedere il modulo "random" ...
Ciao
