Guest User

PFC-maxime

a guest
Nov 12th, 2019
73
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #import des modules utile pour le programme
  2. import random
  3. import numpy as np
  4.  
  5.  
  6. #déclaration des variables
  7. liste_coup=[0]
  8. coup_adverse=""
  9. valeur_coup=0
  10. liste_coup_machine=[]
  11. liste_coup_adverse=[]
  12. partie={"défaites":0,"victoires":0,"égalités":0}
  13.  
  14. #attribution du premier coup aléatoirement
  15. coup_machine=random.choice(["pierre","feuille","ciseaux"])
  16.  
  17. #boucle pour n itérations
  18. for i in range(100):
  19.     #entré du coup de l'adversaire
  20.     coup_adverse=input()
  21.  
  22.     #attribution des point pour les stats
  23.     if coup_adverse==coup_machine:
  24.         partie["égalités"]+=1
  25.     elif coup_adverse=="ciseaux":
  26.             if coup_machine=="feuille":
  27.                 partie["défaites"]+=1
  28.             else:
  29.                 partie["victoires"]+=1
  30.     elif coup_adverse=="feuille":
  31.             if coup_machine=="pierre":
  32.                 partie["défaites"]+=1
  33.             else:
  34.                 partie["victoires"]+=1
  35.     elif coup_adverse=="pierre":
  36.             if coup_machine=="ciseaux":
  37.                 partie["défaites"]+=1
  38.             else:
  39.                 partie["victoires"]+=1
  40.  
  41.  
  42.     #ajout à la liste des coup de la personne le coup quelle viens de jouer
  43.     if coup_adverse == "ciseaux":
  44.         liste_coup.append(liste_coup[-1] + 3)
  45.     elif coup_adverse =="pierre":
  46.         liste_coup.append(liste_coup[-1] + 1)
  47.     else:
  48.         liste_coup.append(liste_coup[-1] + 2)
  49.     liste_coup_adverse.append(coup_adverse)
  50.  
  51.     #programme de régression linéaire qui renvoie la valeur du coup à jouer
  52.     index = []
  53.     total = 0
  54.     nouveau_coup = 0
  55.     for i in range(len(liste_coup)):
  56.         index.append(i)
  57.     coeff = np.polyfit(index, liste_coup, 1)
  58.     f = np.poly1d(coeff)
  59.     total = liste_coup[-1]
  60.     nouveau_coup = f(len(liste_coup))
  61.     valeur_coup=int(round(nouveau_coup - total))
  62.  
  63.     #attribution du coup en fonction de sa valeur
  64.     if int(valeur_coup)==1:
  65.         coup_machine="feuille"
  66.     elif int(valeur_coup)==2:
  67.         coup_machine="ciseaux"
  68.     else:
  69.         coup_machine="pierre"
  70.     liste_coup_machine.append(coup_machine)
  71.     #réinisialisation de la variable coup_adverse en vue de la boucle itérative
  72.     coup_adverse=""
  73. #affichage des données de la partie
  74. print(partie)
RAW Paste Data