Jeu de bataille

from random import * #On identifie les potencielles erreurs afin de faciliter la lecture du programme pour l'utilisateur erreur = [] for i in range (52): erreur.append(i) def bataille(cartes1,cartes2,joueur): #On ragarde si les information entrées par l'utilisateur sonr coérantes, sinn, on lui demande réésayer E=0 for i in erreur: if i == joueur: E = 1 if E == 0: return '!! IL Y A UNE ERREUR DANS LA SAISIE, VEUILLEZ REESAYER !!, vous devez chosir un nombre de joueur compris entre 1 et 52 (inclu)' #on défini les variables et on demande à l'utilisateur si il veux jouer a = 0 cartes={} gagne={} points=[[0]for i in range(52)] eg=0 eglist={} gagant=0 JG=0 lstJG=[] print("Les règles suivantes sont simples et fidèles au jeu original de la bataille, la seule différence réside dans le comptage des points. En effet, ils s'affichent à la fin et pour gagner, il faut en avoir le plus. Les premiers crochets correspondent au joueur 0, les deuxièmes au joueur 1, les troisièmes au joueur 3 etc...") #on définit les cartes for i in cartes2: for j in cartes1: cartes[a]=i,j a +=1 #on mélange les cartes for i in range (52): mel = randint(0,51) cartes[i],cartes[mel]=cartes[mel],cartes[i] #On défini le rapport de force entre les cartes for i in range (1,10): gagne[(i+1, 'pique')]=i gagne[(i+1, 'coeur')]=i gagne[(i+1, 'trefle')]=i gagne[(i+1, 'carreau')]=i gagne[('valet', 'pique')]=10 gagne[('valet', 'coeur')]=10 gagne[('valet', 'carreau')]=10 gagne[('valet', 'trefle')]=10 gagne[('reine', 'pique')]=11 gagne[('reine', 'coeur')]=11 gagne[('reine', 'carreau')]=11 gagne[('reine', 'trefle')]=11 gagne[('roi', 'pique')]=12 gagne[('roi', 'coeur')]=12 gagne[('roi', 'carreau')]=12 gagne[('roi', 'trefle')]=12 gagne[('As', 'pique')]=13 gagne[('As', 'coeur')]=13 gagne[('As', 'carreau')]=13 gagne[('As', 'trefle')]=13 #on répartie les cartes joueurs=[[cartes[i*joueur+j] for i in range (52//joueur)]for j in range(joueur)] #On joue les cartes for i in range (52//joueur): gagant=0 eg=0 eglist.clear() A=[] A.clear() for j in range(joueur): print('-->'+'joueur '+str(j)+' '+str(joueurs[j][i])) if gagne[joueurs[j][i]]>gagant: gagant=gagne[joueurs[j][i]] b=j c=i for j in range(joueur): if gagne[joueurs[j][i]]==gagant: eglist[j]=joueurs[j][i] eg += 1 if len(eglist)>1: print ("Il y a une egalité ! Nous avons donc placé une carte inconnue à l'envers du paquet des joueurs ayant tirés la même carte. Nous allons maintenant refaire un tour, avec eux seulement:") gagant=0 eg = 0 for z in eglist: print ('joueur'+str(z)+str(joueurs[z][i-1])) if gagne[joueurs[z][i-1]]>gagant: gagant=gagne[joueurs[z][i-1]] Z=z for e in eglist: if gagne[joueurs[e][i-1]]==gagant: eg += 1 if eg >= 2: points[e][0] += 2 A.append(e) J = 'les gagnants sont les joueurs:'+str(A) eg = 5 if eg != 5: points[Z][0] += 2 J = 'le gagnant est le joueur'+str(Z) else: points[b][0] += 1 J = 'le gagnant est le joueur:'+str(b) J=J.upper() print('_') print(J) print('_') print('_') print(''' ''') #fin du tour for i in range(52): if points[i][0]>JG: JG=points[i][0] for i in range(52): if points[i][0]==JG: lstJG.append(i) print('Fin de Partie') print('LE OU LES JOUEURS(S) GAGANT(S) SONT LES JOUEURS'+str(lstJG)) return points print(bataille(['trefle','carreau','pique','coeur'],[2,3,4,5,6,7,8,9,10,'valet','reine','roi','As'],int(input('Quel est le nombre de joueurs?'))))