Outils pour utilisateurs

Outils du site


python:tarot

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

python:tarot [2020/01/05 16:32] – créée crustpython:tarot [2020/01/08 13:50] (Version actuelle) crust
Ligne 9: Ligne 9:
 Pour bénéficier de la dernière version à jour, merci de vérifier sur le git : [[https://github.com/CyrilleBiot/scripts/blob/master/tarot-v3.py| tarot-v3.py sur le git]] Pour bénéficier de la dernière version à jour, merci de vérifier sur le git : [[https://github.com/CyrilleBiot/scripts/blob/master/tarot-v3.py| tarot-v3.py sur le git]]
 <code python> <code python>
 +
 +#!/usr/bin/env python
 +# -*- coding: utf-8 -*-
 +
 +"""Programme de calcul des scores au tarot"""
 +
 +__author__ = "Cyrille BIOT"
 +__copyright__ = "Copyleft"
 +__credits__ = "Cyrille BIOT"
 +__license__ = "GPL"
 +__version__ = "3.0.0"
 +__maintainer__ = "Cyrille BIOT"
 +__email__ = "cyrille@cbiot.fr"
 +__status__ = "Devel"
 +
 +
 +
 +liste_des_primes = []
 +
  
 # Gestion du nombre de joueurs # Gestion du nombre de joueurs
Ligne 17: Ligne 36:
         nb_joueurs = int(input("Saisir le nombre de joueurs : "))         nb_joueurs = int(input("Saisir le nombre de joueurs : "))
         if 2 < nb_joueurs < 6:         if 2 < nb_joueurs < 6:
-            print("Nombre de joueurs : ", nb_joueurs)+            print("Nombre de joueurs : ", nb_joueurs)
             break             break
     except ValueError:     except ValueError:
Ligne 72: Ligne 91:
 # ===================================================================================================================== # =====================================================================================================================
  
-def verificationContrat(nombre_de_points, nombre_d_oudlers):+def verificationContrat(nombre_de_points, pari_oudlers):
     # Contrat rempli ou non  ? Calcul du bonus / malus     # Contrat rempli ou non  ? Calcul du bonus / malus
-    if nombre_de_points >= nombre_d_oudlers:+    if nombre_de_points >= pari_oudlers:
         print("Le contrat est rempli.")         print("Le contrat est rempli.")
     else:     else:
         print("Le contrat n'est pas rempli.")         print("Le contrat n'est pas rempli.")
  
-    gain = nombre_de_points - nombre_d_oudlers+    gain = nombre_de_points - pari_oudlers
  
     print("{} points remportés dans ce tour.".format(gain))     print("{} points remportés dans ce tour.".format(gain))
Ligne 87: Ligne 106:
 #  =================================================== #  ===================================================
  
-def updateScore(gain, dictionnaire_joueurs, preneur, nb_joueurs):+def updateScore(gain,  preneur,  liste_beneficiaire_prime):
     # Mise à jour du score     # Mise à jour du score
     # Ajout des scores     # Ajout des scores
 +    print(dico_primes)
  
-    for nom in dictionnaire_joueurs+    # Si contrat rempli 
-        score = dictionnaire_joueurs[nom][-1]+    if (gain > 0) : 
 +        for nom in dico_joueurs
 +            score = dico_joueurs[nom][-1]
  
-        if nom == preneur: +            if nom == preneur: 
-            score = score + (gain + dico_contrat[contrat_tour]) * (nb_joueurs - 1) +                score = score + (gain + dico_contrat[contrat_tour]) * (nb_joueurs - 1) 
-        else: +            else: 
-            score = score - (gain + dico_contrat[contrat_tour]) +                score = score - (gain + dico_contrat[contrat_tour]) 
-        dictionnaire_joueurs[nom].append(score)+            dico_joueurs[nom].append(score)
  
-    print(dictionnaire_joueurs)+    # Si contrat non rempli 
 +    else: 
 +        for nom in dico_joueurs: 
 +            score = dico_joueurs[nom][-1] 
 + 
 +            if nom == preneur: 
 +                score = score + (gain - dico_contrat[contrat_tour]) * (nb_joueurs - 1) 
 +            else: 
 +                score = score - (gain - dico_contrat[contrat_tour]) 
 +            dico_joueurs[nom].append(score) 
 + 
 +    # GESTION DES PRIMES 
 +    print("Dico des primes : " , dico_primes) 
 +    print("Liste des primes : ", liste_beneficiaire_prime) 
 + 
 +    i = 0 
 +    for nom in liste_beneficiaire_prime: 
 +        print(nom) 
 +        if nom[0] == liste_beneficiaire_prime[i][0]: 
 +            bonus = dico_primes[liste_beneficiaire_prime[i][1]] 
 +            print(nom, bonus) 
 +        else: 
 +            bonus = dico_primes[liste_beneficiaire_prime[i][1]] * -1 
 +            print(nom, bonus) 
 +        i += 1 
 +    print(dico_joueurs)
  
  
 # Initialisation des paramètres du tour # Initialisation des paramètres du tour
-def parametrageTour(dictionnaire_joueurs, +def parametrageTour(): 
-                    dictionnaire_contrats, +
-                    dictionnaire_oudlers, +
-                    dictionnaire_primes, +
-                    nombre_de_points_realises +
-                    ):+
     # Gestion du preneur     # Gestion du preneur
     preneur = ""     preneur = ""
Ligne 174: Ligne 217:
                 fin_des_primes = 'oui'                 fin_des_primes = 'oui'
                 beneficiaire = ''                 beneficiaire = ''
-                liste_des_primes = []+                #liste_des_primes = []
  
                 while fin_des_primes.lower() not in ['non', 'n']:                 while fin_des_primes.lower() not in ['non', 'n']:
Ligne 198: Ligne 241:
                             prime = input("Quelle prime attribuer à {} ? : ".format(beneficiaire))                             prime = input("Quelle prime attribuer à {} ? : ".format(beneficiaire))
  
-                            if prime in dictionnaire_primes:+                            if prime in dico_primes:
                                 print("{} accordée à {}. ".format(prime, beneficiaire))                                 print("{} accordée à {}. ".format(prime, beneficiaire))
                                 break                                 break
Ligne 204: Ligne 247:
                                 print("Cette prime n'existe pas. Réessayer.")                                 print("Cette prime n'existe pas. Réessayer.")
                                 print('Rappel. Voici la liste des primes : ')                                 print('Rappel. Voici la liste des primes : ')
-                                for nom, valeur in dictionnaire_primes.items():+                                for nom, valeur in dico_primes.items():
                                     print("Prime :  {}, valeur : {}.".format(nom, valeur))                                     print("Prime :  {}, valeur : {}.".format(nom, valeur))
                         except ValueError:                         except ValueError:
                             print("Erreur...")                             print("Erreur...")
  
-                    liste_des_primes.append({beneficiaire, prime})+                    liste_des_primes.append((beneficiaire, prime))
                     fin_des_primes = input("Y a-t-il des autres primes à saisir ? ")                     fin_des_primes = input("Y a-t-il des autres primes à saisir ? ")
  
Ligne 224: Ligne 267:
  
     return nb_points, nb_oudlers, contrat_tour, preneur, liste_des_primes     return nb_points, nb_oudlers, contrat_tour, preneur, liste_des_primes
 +
  
  
Ligne 232: Ligne 276:
 fin_du_jeu = '' fin_du_jeu = ''
 while fin_du_jeu.lower() != 'quitter': while fin_du_jeu.lower() != 'quitter':
-    nb_points, nb_oudlers, contrat_tour, preneur, liste_des_primes = parametrageTour(dico_joueurs, +    nb_points, nb_oudlers, contrat_tour, preneur, liste_des_primes = parametrageTour()
-                                                                                     dico_contrat, +
-                                                                                     dico_oudlers, +
-                                                                                     dico_primes, +
-                                                                                     nb_joueurs)+
     gain = verificationContrat(nb_points, dico_oudlers[nb_oudlers])     gain = verificationContrat(nb_points, dico_oudlers[nb_oudlers])
-    updateScore(gain, dico_joueurs, preneur, nb_joueurs+    updateScore(gain, preneur, liste_des_primes
-    fin_du_jeu = input('Cesser la partie ? Saisir "Quitter" : ') +    fin_du_jeu = input("Cesser la partie ? Saisir 'Quitter' : ")
  
 else: else:
python/tarot.1578238375.txt.gz · Dernière modification : 2020/01/05 16:32 de crust