agents_graphique.py

Created by gengisclan

Created on August 18, 2023

8.32 KB

Ce petit programme vous aidera a vous lancer ou non dans l’assassinat d’un personnage sur Medieval II Total War

Il peux aussi être utilisé pour: - l’espionnage - le sabotage - le rachat de marchand - l’incinération des hérétiques

Si vous arrivez à le faire crasher, merci de me contacter sur discord : gengisclan


'''
Cree par Gengisclan le 05/07/2023
'''

# Modules
from kandinsky import *
from random import randint
from time import sleep
from ion import *

# Rectifie les erreurs dans la chaine de
# caractere
def Rectifieur(chaine,chaine_sec="",test=True,chang=False):  
  while chaine[0]==",":
    if chaine==",":return ""
    chaine=chaine[1:]
  while chaine[-1]==",":
    if chaine==",":return ""
    chaine=chaine[:-1]
  while test:
    if chaine==",":
      return ""
    test=False
    for indice in range(len(chaine)-1):
      if chaine[indice]=="," and chaine[indice+1]==",":
        chaine_sec=Decoupeur(chaine,indice)
        test=True
        chang=True
    if chang==True:
      chaine=chaine_sec
  return chaine  

# Enleve le caractere a l'indice donne
def Decoupeur(chaine,indice,chaine_sec=""):
  for j in range(indice):
    chaine_sec+=chaine[j]
  for k in range(indice+1,len(chaine)):
    chaine_sec+=chaine[k]
  return chaine_sec

# Convertis une chaine de caractere type
# liste en liste d'entiers    
def Convertisseur(chaine,tampon="",L_taux=[]):
  for i in chaine:
    if i==",":
      L_taux.append(int(tampon))
      tampon=""
    else:tampon+=i
  if L_taux==[]:
    L_taux.append(int(tampon))
  return L_taux

def Ch_page():
  global suiv
  suiv=False
  sleep(.1)  
  

# Permet a l'uttilisateur d'ecrire du texte
def Ecriture(n_souris):
  if (n_souris<=4 and len(Boutons[n_souris][0])<3) or (n_souris==5 and len(Boutons[n_souris][0])<28):
    sleep(.1)
    if keydown(KEY_ZERO):Boutons[n_souris][0]+="0"
    if keydown(KEY_ONE):Boutons[n_souris][0]+="1"
    if keydown(KEY_TWO):Boutons[n_souris][0]+="2"
    if keydown(KEY_THREE):Boutons[n_souris][0]+="3"
    if keydown(KEY_FOUR):Boutons[n_souris][0]+="4"
    if keydown(KEY_FIVE):Boutons[n_souris][0]+="5"
    if keydown(KEY_SIX):Boutons[n_souris][0]+="6"
    if keydown(KEY_SEVEN):Boutons[n_souris][0]+="7"
    if keydown(KEY_EIGHT):Boutons[n_souris][0]+="8"
    if keydown(KEY_NINE):Boutons[n_souris][0]+="9"
    if n_souris>3:
      if keydown(KEY_COMMA):Boutons[n_souris][0]+=","
  if keydown(KEY_BACKSPACE):Boutons[n_souris][0]=Boutons[n_souris][0][0:-1]

# Calcul du taux de reussite
def Assassinat(taux,nb_assassins,precision=1000,moy_taux=0,nb_mort=0):

  # Transformation de la liste en taux 
  # entier
  if type(taux)==list:
    for i in taux:
      moy_taux+=i
    taux=moy_taux/len(taux)
    taux=int(taux)
  
  # Calcul du taux
  for i in range(precision):
    for i in range(nb_assassins):
      if randint(1,100)<=taux:
        nb_mort+=1
        break

  # Retournement du taux
  return int(nb_mort/precision*100)

# Dessin du logo
def Logo():
  fill_rect(0,0,320,240,(0,)*3)
  fill_rect(100,80,120,60,(255,)*3)
  fill_rect(101,81,118,58,(0,)*3)
  draw_string("Cree par",120,90,(255,)*3,(0,)*3)
  draw_string("Gengisclan",110,110,(255,)*3,(0,)*3)
  sleep(2)

# Dessin d'un bouton/case
def Dessin_boutons(bouton,coul=(0,)*3):
  fill_rect(bouton[3],bouton[4],bouton[1],bouton[2],(255,)*3)
  fill_rect(bouton[3]+1,bouton[4]+1,bouton[1]-2,bouton[2]-2,coul)
  draw_string(bouton[0],bouton[3]+10,bouton[4]+10,(255,)*3,coul)
  

# Pages
def Page1():
  Dessin_boutons(Boutons[0])  
  Dessin_boutons(Boutons[1])
  Dessin_boutons(Boutons[7])
  Dessin_boutons(Boutons[n_souris],(112,114,110))

def Page2():
  draw_string("Taux de chance",90,20,(255,)*3,(0,)*3)
  Dessin_boutons(Boutons[2],(225,198,153))    
  draw_string("Nombre d'agents",90,105,(255,)*3,(0,)*3)
  Dessin_boutons(Boutons[3],(225,198,153))    
  Dessin_boutons(Boutons[4])
  Dessin_boutons(Boutons[n_souris],(112,114,110))
  

def Page3():
  draw_string("Taux de chance",90,20,(255,)*3,(0,)*3)
  Dessin_boutons(Boutons[5],(225,198,153))    
  draw_string("Nombre d'agents",90,105,(255,)*3,(0,)*3)
  Dessin_boutons(Boutons[3],(225,198,153))    
  Dessin_boutons(Boutons[n_souris],(112,114,110))
  Dessin_boutons(Boutons[4])    

def Page4():
  draw_string("Taux de Reussite",80,20,(255,)*3,(0,)*3)
  Dessin_boutons(Boutons[6])  

def Page5():
  draw_string("Taux unique",100,20,(255,)*3,(0,)*3)
  
  draw_string("- Rentrez votre taux dans la",10,55,(255,)*3,(0,)*3)
  draw_string("premiere case",30,75,(240,0,32),(0,)*3)
  
  draw_string("- Rentrez le nombre de vos",10,95,(255,)*3,(0,)*3)
  draw_string("agents disponibles dans la",30,115,(255,)*3,(0,)*3)
  draw_string("deuxieme case",30,135,(240,0,32),(0,)*3)

  Dessin_boutons(Boutons[8])

def Page6():  
  draw_string("Liste de taux",90,20,(255,)*3,(0,)*3)
  
  draw_string("- Rentrez votre taux dans la",10,55,(255,)*3,(0,)*3)
  draw_string("premiere case",30,75,(240,0,32),(0,)*3)
  draw_string("sous la forme",170,75,(255,)*3,(0,)*3)
  draw_string("Taux,Taux,Taux,Taux...",30,95,(240,0,32),(0,)*3)
  
  draw_string("- Rentrez le nombre de vos",10,115,(255,)*3,(0,)*3)
  draw_string("agents disponibles dans la",30,135,(255,)*3,(0,)*3)
  draw_string("deuxieme case",30,155,(240,0,32),(0,)*3)

  Dessin_boutons(Boutons[8])

# Variables
page=1 # Numero de la page
suiv=False
res=0 # Initialisation du resultat
run=True



# Liste des boutons
Boutons=[
# [Texte,Longueur,Largeur,x,y]
["Taux unique",130,40,100,70], # Taux unique
["Liste de taux",150,40,90,120], # Liste de taux

["",50,35,135,55], # Taux
["",50,35,135,140], # Nb assassins
["Calcul",80,40,220,180], # Calcul

["",300,35,10,55], # Liste taux

["",60,35,130,105], # Resutlat

["Aide",60,40,10,10], # Aide
["OK",40,40,220,180] # Indication
]


Logo()
while run:
  Ch_page()
  
#     __Page 1__Acceuil__
  if page==1:
    n_souris=0 # Situation de la sourie
    fill_rect(0,0,320,240,(0,)*3)
    Page1()
    while not suiv:
      sleep(.1)
      if keydown(KEY_UP) and n_souris==0:
        n_souris=7
        Page1()
        Dessin_boutons(Boutons[n_souris],(112,114,110))
      if keydown(KEY_UP) and n_souris==1:
        n_souris-=1
        Page1()
        Dessin_boutons(Boutons[n_souris],(112,114,110))
      if keydown(KEY_DOWN) and n_souris==0:
        n_souris+=1
        Page1()
        Dessin_boutons(Boutons[n_souris],(112,114,110))
      if keydown(KEY_DOWN) and n_souris==7:
        n_souris=0
        Page1()
        Dessin_boutons(Boutons[n_souris],(112,114,110))
      if keydown(KEY_OK):
        if n_souris==0:page=2
        if n_souris==1:page=3
        if n_souris==7:page=5
        suiv=True

#     __Page 2__Taux unique__
  if page==2:
    n_souris=2
    fill_rect(0,0,320,240,(0,)*3)
    Page2()
    while not suiv:
      sleep(.1)
      if keydown(KEY_UP) and (n_souris==3 or n_souris==4):
        n_souris-=1
        Page2()
        Dessin_boutons(Boutons[n_souris],(112,114,110))
      if keydown(KEY_DOWN) and (n_souris==2 or n_souris==3):
        n_souris+=1
        Page2()
        Dessin_boutons(Boutons[n_souris],(112,114,110))
      if keydown(KEY_OK) and n_souris==4 and Boutons[2][0]!="" and Boutons[3][0]!="":
        res=Assassinat(int(Boutons[2][0]),int(Boutons[3][0]))
        page=4
        suiv=True 
      if n_souris!=4:
        Ecriture(n_souris)  
        Page2()
        
#     __Page 3__Liste de taux__
  if page==3:
    n_souris=5  
    fill_rect(0,0,320,240,(0,)*3)
    Page3()
    while not suiv: 
      sleep(.1)
      if keydown(KEY_DOWN) and n_souris==3:
        n_souris=4
        Page3()
        Dessin_boutons(Boutons[n_souris],(112,114,110))
      if keydown(KEY_DOWN) and n_souris==5:
        n_souris=3
        Page3()
        Dessin_boutons(Boutons[n_souris],(112,114,110))
      if keydown(KEY_UP) and n_souris==3:
        n_souris=5
        Page3()
        Dessin_boutons(Boutons[n_souris],(112,114,110))
      if keydown(KEY_UP) and n_souris==4:
        n_souris=3
        Page3()
        Dessin_boutons(Boutons[n_souris],(112,114,110))
      if keydown(KEY_OK) and n_souris==4 and Boutons[5][0]!="" and Boutons[3][0]!="" and Rectifieur(Boutons[5][0])!="":
        res=Assassinat(Convertisseur(Rectifieur(Boutons[5][0])),int(Boutons[3][0]))
        page=4
        suiv=True 
      if n_souris!=4:
        Ecriture(n_souris)  
        Page3()  
      
#     __Page 4__Resultat__
  if page==4:    
    fill_rect(0,0,320,240,(0,)*3)
    Boutons[6][0]=str(res)+"%"
    Page4()
    sleep(.1)
    run=False

#     __Page 5__Aide__Taux unique__
  if page==5:
    fill_rect(0,0,320,240,(0,)*3)
    sleep(.1)
    Page5()
    while not keydown(KEY_OK): 
      pass
    page+=1
    suiv=True 
      
#     __Page 6__Aide__Liste de taux__
  if page==6:
    fill_rect(0,0,320,240,(0,)*3)
    sleep(.1)
    Page6()
    while not keydown(KEY_OK): 
      pass
    page=1
    suiv=True
        

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.