Welcome, guest | Sign In | My Account | Store | Cart
# Créé par ISN_2016 , le 25/04/2016 en Python 3.2
#-*- coding: utf-8 -*-


from tkinter import *
from random import randint
import winsound


""" Touches Mouvements : Haut
                         Bas
                         Droite
                         Gauche

    Touches Attaque :    Espace
"""


#################################
""" Définition des fonctions """
#################################




# Ajout d'une touche à la liste
def enfoncee(evt) :
    if evt.keysym not in touches :
        touches.append(evt.keysym)




# Suppression d'une touche de la liste
def relachee(evt) :
    if evt.keysym in touches :
        touches.remove(evt.keysym)

"""_______________________________________________________"""

###############################
# Animations des Personnages :
###############################

def animation() :
    global Xp, Yp, Anim, num, dialogue, Xt1, Yt1, Xt2, Yt2, Xa, Ya, money, end
    Xpav, Ypav = Xp, Yp
    if "Up" in touches :
        if Decors[(Yp-16)//64][(Xp)//64]  in (' ','-','O','P','i', 'm', 'c', 'w', 'v','n','!','b','W','a','f','s','o','k','u') :
            Yp = Yp - 8
            NomFichier = 'PERSOH'
        if "space" in touches :
            NomFichier = 'PERSOAH'

    if "Down" in touches :
        if Decors[(Yp+32)//64][(Xp)//64]  in (' ','-','O','P','i', 'm', 'c', 'w', 'v','n','!','b','W','a','f','s','o','k','u') :
            Yp = Yp + 8
            NomFichier = 'PERSOB'
        if "space" in touches :
            NomFichier = 'PERSOAB'

    if "Left" in touches :
        if Decors[(Yp)//64][(Xp-32)//64]  in (' ','-','O','P','i', 'm', 'c', 'w', 'v','n','!','b','W','a','f','s','o','k','u') :
            Xp = Xp - 8
            NomFichier = 'PERSOG'
        if "space" in touches :
            NomFichier = 'PERSOAG'

    if "Right" in touches :
        if Decors[(Yp)//64][(Xp+32)//64]  in (' ','-','O','P','i', 'm', 'c', 'w', 'v','n','!','b','W','a','f','s','o','k','u') :
            Xp = Xp + 8
            NomFichier = 'PERSOD'
        if "space" in touches :
            NomFichier = 'PERSOAD'

    if Decors[(Yp)//64][(Xp+32)//64]  in '0' :
        Xpav, Ypav = Xp, Yp


    # Combats
    if Xt1-50 < Xp < Xt1+50 and Yt1-50 < Yp < Yt1+50 :
        if "space" in touches :
            winsound.PlaySound("sons/zombie.wav", winsound.SND_ASYNC)
            boite.delete('trolln1')
            Xt1, Yt1 = -32, -32
        if "space" not in touches :
            boite.itemconfigure(sprite, image=PERSOM)

    if Xt2-50 < Xp < Xt2+50 and Yt2-50 < Yp < Yt2+50 :
        if "space" in touches :
            winsound.PlaySound("sons/zombie.wav", winsound.SND_ASYNC)
            boite.delete('trolln2')
            Xt2, Yt2 = -32, -32
        if "space" not in touches :
            boite.itemconfigure(sprite, image=PERSOM)

    if Xa-50 < Xp < Xa+50 and Ya-50 < Yp < Ya+50 :
        if "space" in touches :
            winsound.PlaySound("sons/criscorpionquimeurt.wav", winsound.SND_ALIAS)
            boite.delete('boss')
            Xa, Ya = -32, -32
            dialogue=2
        if "space" not in touches :
            boite.itemconfigure(sprite, image=PERSOM)


    # Changement de tableau
    if num!=103 and num!=104:
        if Decors[(Yp)//64][(Xp)//64]  in ('b') :
            num +=1
            fenetre.destroy()

    #tableaux speciaux(15-100-101)
    if Decors[(Yp)//64][(Xp)//64]  in ('W') :
        num =15
        fenetre.destroy()

    if Decors[(Yp)//64][(Xp)//64]  in ('u') :
        if num==7 :
            num= 100
            fenetre.destroy()
        if num==8 :
            num= 101
            fenetre.destroy()

    if Decors[(Yp)//64][(Xp)//64]  in ('s') :
        if num==101:
            num=104
            fenetre.destroy()
        if num==100:
            num= 103
            fenetre.destroy()

    if num==103:
        if Decors[(Yp)//64][(Xp)//64]  in ('b') :
            num=8
            fenetre.destroy()

    if num==104:
        if Decors[(Yp)//64][(Xp)//64]  in ('b') :
            num=9
            fenetre.destroy()



    # Dialogues
    if num==1 :
        if Decors[(Yp)//64][(Xp)//64]  in (' ') :
            if dialogue==0 :
                boite.create_image(0, 0, image=jack, anchor=NW, tags='bulle')
                winsound.PlaySound("sons/dialogue.wav", winsound.SND_ASYNC)
                dialogue=1

    if num==3 :
        if Decors[(Yp)//64][(Xp)//64]  in ('o') :
            if dialogue==0 :
                boite.create_image(0, 0, image=tatidou, anchor=NW, tags='bulle')
                winsound.PlaySound("sons/dialogue.wav", winsound.SND_ASYNC)
                dialogue=1

        if Decors[(Yp)//64][(Xp)//64]  in (' ') :
            if dialogue==1 :
                boite.delete('bulle')
                boite.create_image(0, 0, image=epee, anchor=NW, tags='bulle')
                winsound.PlaySound("sons/item.wav", winsound.SND_ASYNC)
                dialogue=2


    if num==15 :
        if Decors[(Yp)//64][(Xp)//64]  in (' ') :
            if dialogue==0 :
                boite.create_image(0, 0, image=theargoste, anchor=NW, tags='bulle')
                winsound.PlaySound("sons/dialogue.wav", winsound.SND_ALIAS)
                winsound.PlaySound("sons/boss.wav", winsound.SND_ASYNC)
                dialogue=1

        if dialogue==2 :
            boite.create_image(0, 0, image=tatidou_fin, anchor=NW, tags='bulle')
            boite.create_image(Xp+64, Yp, image=PNJ1, anchor=NW)
            winsound.PlaySound("sons/dialogue.wav", winsound.SND_ALIAS)
            winsound.PlaySound("sons/fete.wav", winsound.SND_ASYNC)
            dialogue=3
            end=1



    if 'Return' in touches :
        if end==0 :
            boite.delete('bulle')
        if end==1 :
            num=16
            fenetre.destroy()

    if Decors[(Yp)//64][(Xp)//64]  in ('k') :
        if money==0 :
            winsound.PlaySound("sons/geme.wav", winsound.SND_ASYNC)
            boite.delete('geme')
            money=1




    # Animation
    if (Xpav, Ypav) != (Xp, Yp) :
        Anim = 1 - Anim
        boite.itemconfigure(sprite, image=eval(NomFichier+str(Anim)))


    boite.coords(sprite, Xp, Yp)
    fenetre.after(90,animation)




def troll1() :
    global Xt1, Yt1, AnimM1
    Xt1av, Yt1av = Xt1, Yt1

    if Decors[(Yt1)//64][(Xt1)//64]  in ('i', 'm') :
        Yt1 = Yt1 - 8
        NomFichier = 'MONSTREH'


    if Decors[(Yt1)//64][(Xt1)//64]  in ('c') :
        Yt1 = Yt1 + 8
        NomFichier = 'MONSTREB'

    if Decors[(Yt1)//64][(Xt1)//64]  in ('w','n') :
        Xt1 = Xt1 - 8
        NomFichier = 'MONSTREG'

    if Decors[(Yt1)//64][(Xt1)//64]  in ('v') :
        Xt1 = Xt1 + 8
        NomFichier = 'MONSTRED'

    if (Xt1av, Yt1av) != (Xt1, Yt1) :
        AnimM1 = 1 - AnimM1
        boite.itemconfigure(monstre1, image=eval(NomFichier+str(AnimM1)))


    boite.coords(monstre1, Xt1, Yt1)
    fenetre.after(70,troll1)





def troll2() :
    global Xt2, Yt2, AnimM2
    Xt2av, Yt2av = Xt2, Yt2

    if Decors[(Yt2)//64][(Xt2)//64]  in ('i','m') :
        Yt2 = Yt2 - 8
        NomFichier = 'MONSTREH'


    if Decors[(Yt2)//64][(Xt2)//64]  in ('c') :
        Yt2 = Yt2 + 8
        NomFichier = 'MONSTREB'

    if Decors[(Yt2)//64][(Xt2)//64]  in ('w', 'n') :
        Xt2 = Xt2 - 8
        NomFichier = 'MONSTREG'

    if Decors[(Yt2)//64][(Xt2)//64]  in ('v') :
        Xt2 = Xt2 + 8
        NomFichier = 'MONSTRED'

    if (Xt2av, Yt2av) != (Xt2, Yt2) :
        AnimM2 = 1 - AnimM2
        boite.itemconfigure(monstre2, image=eval(NomFichier+str(AnimM2)))


    boite.coords(monstre2, Xt2, Yt2)
    fenetre.after(70,troll2)




def PNJ() :
    global Yj, Xj, AnimJ

    if Decors[(Yj)//64][(Xj)//64]  in ('j') :
        NomFichier = 'PNJ'
        AnimJ = 1 - AnimJ
        boite.itemconfigure(pnj, image=eval(NomFichier+str(AnimJ)))
    fenetre.after(1000,PNJ)




def argoste() :
    global Ya, Xa, AnimA
    NomFichier = 'ARGOSTE'

    if Decors[(Ya)//64][(Xa)//64]  in ('a',' ','P') :
        Xa = Xa + randint(-100,100)
        Ya = Ya + randint(-100,100)

    if IndexError  :
        Xa = randint(64,1216)
        Ya = randint(64,768)

    if Decors[(Ya)//64][(Xa)//64]  in ('1','2','3','4','5','6','7','8','9','d','f','g','h')  :
        Xa = randint(64,1216)
        Ya = randint(64,768)

    AnimA = 1 - AnimA
    boite.itemconfigure(largoste, image=eval(NomFichier+str(AnimA)))
    boite.coords(largoste, Xa, Ya)
    fenetre.after(2000,argoste)


# PNJs de la dernière salle (16)

def Machin() :
    global Ymachin, Xmachin, AnimJ

    if Decors[(Ymachin)//64][(Xmachin)//64]  in ('e') :
        NomFichier = 'MACHIN'
        AnimJ = 1 - AnimJ # Tempo
        boite.itemconfigure(machin, image=eval(NomFichier+str(AnimJ)))
    fenetre.after(200,Machin)

def Fille() :
    global Yfille, Xfille, AnimJ

    if Decors[(Yfille)//64][(Xfille)//64]  in ('x') :
        NomFichier = 'FILLE'
        boite.itemconfigure(fille, image=eval(NomFichier+str(AnimJ)))
    fenetre.after(200,Fille)

def Mario() :
    global Ymario, Xmario, AnimJ

    if Decors[(Ymario)//64][(Xmario)//64]  in ('y') :
        NomFichier = 'MARIO'
        boite.itemconfigure(mario, image=eval(NomFichier+str(AnimJ)))
    fenetre.after(200,Mario)

def Luigi() :
    global Yluigi, Xluigi, AnimJ

    if Decors[(Yluigi)//64][(Xluigi)//64]  in ('l') :
        NomFichier = 'LUIGI'
        boite.itemconfigure(luigi, image=eval(NomFichier+str(AnimJ)))
    fenetre.after(200,Luigi)

def Binoclare() :
    global Ybinoclare, Xbinoclare, AnimJ

    if Decors[(Ybinoclare)//64][(Xbinoclare)//64]  in ('$') :
        NomFichier = 'BINOCLARE'
        boite.itemconfigure(binoclare, image=eval(NomFichier+str(AnimJ)))
    fenetre.after(200,Binoclare)

def Chelou() :
    global Ychelou, Xchelou, AnimJ

    if Decors[(Ychelou)//64][(Xchelou)//64]  in ('€') :
        NomFichier = 'CHELOU'
        boite.itemconfigure(chelou, image=eval(NomFichier+str(AnimJ)))
    fenetre.after(200,Chelou)


"""______________________________________________"""



# Lecture du fichier contenant la boite

def charge_boite(nom) :
    fichier = open(nom + ".txt", "r")
    data = fichier.readlines()
    fichier.close()
    return data



# Dessin de l'interface graphique

def dessine():
    global Xp, Yp, Xt1, Yt1, Xt2, Yt2, Xj, Yj, Xa, Ya, X0, Y0, Xmachin, Ymachin, Xfille, Yfille
    global  Xmario, Ymario, Xluigi, Yluigi, Xbinoclare, Ybinoclare, Xchelou, Ychelou, t1, t2, b,num

    # Textures Environnement
    ligne, colonne = 0, 0
    while ligne < 13 :
        if Decors[ligne][colonne] == 'X' :
            boite.create_image(colonne*64, ligne*64, image=X, anchor=NW)
        if Decors[ligne][colonne] == 'A' :
            boite.create_image(colonne*64, ligne*64, image=A, anchor=NW)
        if Decors[ligne][colonne] == 'H' :
            boite.create_image(colonne*64, ligne*64, image=H, anchor=NW)
        if Decors[ligne][colonne] == ' ' :
            boite.create_image(colonne*64, ligne*64, image=R, anchor=NW)
        if Decors[ligne][colonne] == 'B' :
            boite.create_image(colonne*64, ligne*64, image=B, anchor=NW)
        if Decors[ligne][colonne] == 'V' :
            boite.create_image(colonne*64, ligne*64, image=V, anchor=NW)
        if Decors[ligne][colonne] == 'N' :
            boite.create_image(colonne*64, ligne*64, image=N, anchor=NW)
        if Decors[ligne][colonne] == 'M' :
            boite.create_image(colonne*64, ligne*64, image=M, anchor=NW)
        if Decors[ligne][colonne] == 'K' :
            boite.create_image(colonne*64, ligne*64, image=K, anchor=NW)
        if Decors[ligne][colonne] == 'E' :
            boite.create_image(colonne*64, ligne*64, image=E, anchor=NW)
        if Decors[ligne][colonne] == 'I' :
            boite.create_image(colonne*64, ligne*64, image=I, anchor=NW)
        if Decors[ligne][colonne] == 'L' :
            boite.create_image(colonne*64, ligne*64, image=L, anchor=NW)
        if Decors[ligne][colonne] == 'T' :
            boite.create_image(colonne*64, ligne*64, image=T, anchor=NW)
        if Decors[ligne][colonne] == 'G' :
            boite.create_image(colonne*64, ligne*64, image=G, anchor=NW)
        if Decors[ligne][colonne] == 'Q' :
            boite.create_image(colonne*64, ligne*64, image=Q, anchor=NW)
        if Decors[ligne][colonne] == 'U' :
            boite.create_image(colonne*64, ligne*64, image=U, anchor=NW)
        if Decors[ligne][colonne] == 'C' :
            boite.create_image(colonne*64, ligne*64, image=C, anchor=NW)
        if Decors[ligne][colonne] == 'J' :
            boite.create_image(colonne*64, ligne*64, image=J, anchor=NW)
        if Decors[ligne][colonne] == 'O' :
            boite.create_image(colonne*64, ligne*64, image=O, anchor=NW)
        if Decors[ligne][colonne] == '-' :
            boite.create_image(colonne*64, ligne*64, image=Y, anchor=NW)
        if Decors[ligne][colonne] == 'W' :
            boite.create_image(colonne*64, ligne*64, image=W, anchor=NW)
        if Decors[ligne][colonne] == 'F' :
            boite.create_image(colonne*64, ligne*64, image=F, anchor=NW)
        if Decors[ligne][colonne] == 'D' :
            boite.create_image(colonne*64, ligne*64, image=D, anchor=NW)
        if Decors[ligne][colonne] == 'S' :
            boite.create_image(colonne*64, ligne*64, image=S, anchor=NW)
        if Decors[ligne][colonne] == 'Z' :
            boite.create_image(colonne*64, ligne*64, image=Z, anchor=NW)
        if Decors[ligne][colonne] == 'z' :
            boite.create_image(colonne*64, ligne*64, image=z, anchor=NW)
        if Decors[ligne][colonne] == '!' :
            boite.create_image(colonne*64, ligne*64, image=q, anchor=NW)
        if Decors[ligne][colonne] == '1' :
            boite.create_image(colonne*64, ligne*64, image=mur11, anchor=NW)
        if Decors[ligne][colonne] == '2' :
            boite.create_image(colonne*64, ligne*64, image=mur12, anchor=NW)
        if Decors[ligne][colonne] == '3' :
            boite.create_image(colonne*64, ligne*64, image=mur21, anchor=NW)
        if Decors[ligne][colonne] == '4' :
            boite.create_image(colonne*64, ligne*64, image=mur22, anchor=NW)
        if Decors[ligne][colonne] == '5' :
            boite.create_image(colonne*64, ligne*64, image=mur31, anchor=NW)
        if Decors[ligne][colonne] == '6' :
            boite.create_image(colonne*64, ligne*64, image=mur32, anchor=NW)
        if Decors[ligne][colonne] == '7' :
            boite.create_image(colonne*64, ligne*64, image=mur41, anchor=NW)
        if Decors[ligne][colonne] == '8' :
            boite.create_image(colonne*64, ligne*64, image=mur42, anchor=NW)
        if Decors[ligne][colonne] == 'h' :
            boite.create_image(colonne*64, ligne*64, image=mur1, anchor=NW)
        if Decors[ligne][colonne] == 'd' :
            boite.create_image(colonne*64, ligne*64, image=mur2, anchor=NW)
        if Decors[ligne][colonne] == 'f' :
            boite.create_image(colonne*64, ligne*64, image=mur3, anchor=NW)
        if Decors[ligne][colonne] == 'g' :
            boite.create_image(colonne*64, ligne*64, image=mur4, anchor=NW)
        if Decors[ligne][colonne] == 'r' :
            boite.create_image(colonne*64, ligne*64, image=porte1, anchor=NW)
        if Decors[ligne][colonne] == 't' :
            boite.create_image(colonne*64, ligne*64, image=porte2, anchor=NW)

        if Decors[ligne][colonne] == 'k' :
            boite.create_image(colonne*64, ligne*64, image=geme, anchor=NW, tags='geme')



        # Textures Perso

        if Decors[ligne][colonne] == 'P' :
            Xp, Yp = X0+colonne*64+32, Y0+ligne*64+32

        if Decors[ligne][colonne] == 'm' :
            Xt1, Yt1 = X0+colonne*64+32, Y0+ligne*64+32
            t1=1

        if Decors[ligne][colonne] != 'm' and t1==0:
            Xt1, Yt1 = -32, -32

        if Decors[ligne][colonne] == 'n' :
            Xt2, Yt2 = X0+colonne*64+32, Y0+ligne*64+32
            t2=1

        if Decors[ligne][colonne] != 'n' and t2==0 :
            Xt2, Yt2 = -32, -32

        if Decors[ligne][colonne] == 'j' :
            Xj, Yj = colonne*64+32, ligne*64+32

        if Decors[ligne][colonne] == 'a' :
            Xa, Ya = X0+colonne*64, Y0+ligne*64
            b=1

        if Decors[ligne][colonne] != 'a' and b==0 :
            Xa, Ya = -32, -32

        if Decors[ligne][colonne] == 'e' :
            Xmachin, Ymachin = colonne*64+32, ligne*64+32

        if Decors[ligne][colonne] == 'x' :
            Xfille, Yfille = colonne*64+32, ligne*64+32

        if Decors[ligne][colonne] == 'y' :
            Xmario, Ymario = colonne*64+32, ligne*64+32

        if Decors[ligne][colonne] == 'l' :
            Xluigi, Yluigi = colonne*64+32, ligne*64+32

        if Decors[ligne][colonne] == '$' :
            Xbinoclare, Ybinoclare = colonne*64+32, ligne*64+32

        if Decors[ligne][colonne] == '€' :
            Xchelou, Ychelou = colonne*64+32, ligne*64+32







        colonne=colonne+1
        if colonne == 20 :
            colonne = 0
            ligne = ligne + 1




def textures():
        global A,Z,E,R,T,Y,U,I,O,P,Q,S,D,F,G,H,J,K,L,M,W,X,C,V,B,N,z,q,geme,mur1,mur11,mur12,mur2
        global mur21,mur22,mur3,mur31,mur32,mur4,mur41,mur42,porte1,porte2,PNJ0,PNJ1,PERSOAB0
        global PERSOAB1,PERSOAD0,PERSOAD1,PERSOAG0,PERSOAG1,PERSOAH0,PERSOAH1,PERSOB0
        global PERSOB1,PERSOD0,PERSOD1,PERSOG0,PERSOG1,PERSOH0,PERSOH1,PERSOM,MONSTREB0
        global MONSTREB1,MONSTRED0,MONSTRED1,MONSTREG0,MONSTREG1,MONSTREH0,MONSTREH1,ARGOSTE0,ARGOSTE1
        #Chargement des fichiers :
        #Roches
        X=PhotoImage(file = "images/cailloux_bas_milieu.gif")
        H=PhotoImage(file = "images/cailloux_haut_milieu.gif")
        V=PhotoImage(file = "images/cailloux_bas_gauche.gif")
        N=PhotoImage(file = "images/cailloux_bas_droite.gif")
        M=PhotoImage(file = "images/cailloux_haut_gauche.gif")
        K=PhotoImage(file = "images/cailloux_haut_droite.gif")

        #Random
        A=PhotoImage(file = "images/arbre.gif")
        R=PhotoImage(file = "images/sol1.gif")
        Y=PhotoImage(file = "images/sol2.gif")
        B=PhotoImage(file = "images/buisson.gif")
        F=PhotoImage(file = "images/tombe.gif")
        W=PhotoImage(file = "images/escalier.gif")
        O=PhotoImage(file = "images/pont.gif")
        D=PhotoImage(file = "images/garde.gif")
        S=PhotoImage(file = "images/maison1.gif")
        Z=PhotoImage(file = "images/maison2.gif")
        z=PhotoImage(file = "images/maison3.gif")
        q=PhotoImage(file = "images/quest.gif")
        geme=PhotoImage(file = "images/geme.gif")


        #Eau
        E=PhotoImage(file = "images/eau.gif")
        I=PhotoImage(file = "images/eau_milieu_gauche.gif")
        L=PhotoImage(file = "images/eau_milieu_droite.gif")
        T=PhotoImage(file = "images/eau_haut_milieu.gif")
        G=PhotoImage(file = "images/eau_haut_gauche.gif")
        Q=PhotoImage(file = "images/eau_haut_droite.gif")
        U=PhotoImage(file = "images/eau_bas_milieu.gif")
        C=PhotoImage(file = "images/eau_bas_gauche.gif")
        J=PhotoImage(file = "images/eau_bas_droite.gif")

        # Donjon
        mur1=PhotoImage(file = "images/donjon/mur_haut_gauche.gif")
        mur2=PhotoImage(file = "images/donjon/mur_haut_droite.gif")
        mur3=PhotoImage(file = "images/donjon/mur_bas_droite.gif")
        mur4=PhotoImage(file = "images/donjon/mur_bas_gauche.gif")

        mur11=PhotoImage(file = "images/donjon/mur_haut_3.gif")
        mur12=PhotoImage(file = "images/donjon/mur_haut_6.gif")
        mur21=PhotoImage(file = "images/donjon/mur_droite_3.gif")
        mur22=PhotoImage(file = "images/donjon/mur_droite_6.gif")
        mur31=PhotoImage(file = "images/donjon/mur_bas_3.gif")
        mur32=PhotoImage(file = "images/donjon/mur_bas_6.gif")
        mur41=PhotoImage(file = "images/donjon/mur_gauche_3.gif")
        mur42=PhotoImage(file = "images/donjon/mur_gauche_6.gif")

        porte1=PhotoImage(file = "images/donjon/mur_porte_1.gif")
        porte2=PhotoImage(file = "images/donjon/mur_porte_2.gif")




        # Information sur le perso :
        PERSOG0=PhotoImage(file="images/sprites/perso1.gif")
        PERSOD0=PhotoImage(file="images/sprites/perso8.gif")
        PERSOG1=PhotoImage(file="images/sprites/perso2.gif")
        PERSOD1=PhotoImage(file="images/sprites/perso7.gif")
        PERSOH0=PhotoImage(file="images/sprites/perso5.gif")
        PERSOH1=PhotoImage(file="images/sprites/perso6.gif")
        PERSOB0=PhotoImage(file="images/sprites/perso3.gif")
        PERSOB1=PhotoImage(file="images/sprites/perso4.gif")
        PERSOAD0=PhotoImage(file="images/sprites/persoattaquedroite.gif")
        PERSOAD1=PhotoImage(file="images/sprites/persoattaquedroite.gif")
        PERSOAG0=PhotoImage(file="images/sprites/persoattaquegauche.gif")
        PERSOAG1=PhotoImage(file="images/sprites/persoattaquegauche.gif")
        PERSOAD1=PhotoImage(file="images/sprites/persoattaquedroite.gif")
        PERSOAB0=PhotoImage(file="images/sprites/persoattaquebas.gif")
        PERSOAB1=PhotoImage(file="images/sprites/persoattaquebas.gif")
        PERSOAH0=PhotoImage(file="images/sprites/persoattaquehaut.gif")
        PERSOAH1=PhotoImage(file="images/sprites/persoattaquehaut.gif")
        PERSOM=PhotoImage(file="images/sprites/persomort.gif")


        # Information sur le monstre :
        MONSTREG0=PhotoImage(file="images/sprites/monstre1gauche.gif")
        MONSTREG1=PhotoImage(file="images/sprites/monstre2gauche.gif")
        MONSTRED0=PhotoImage(file="images/sprites/monstre1droite.gif")
        MONSTRED1=PhotoImage(file="images/sprites/monstre2droite.gif")
        MONSTREH0=PhotoImage(file="images/sprites/monstre1haut.gif")
        MONSTREH1=PhotoImage(file="images/sprites/monstre2haut.gif")
        MONSTREB0=PhotoImage(file="images/sprites/monstre1bas.gif")
        MONSTREB1=PhotoImage(file="images/sprites/monstre2bas.gif")

        PNJ0=PhotoImage(file="images/sprites/PNJ1.gif")
        PNJ1=PhotoImage(file="images/sprites/PNJ2.gif")

        ARGOSTE0=PhotoImage(file="images/sprites/argoste0.gif")
        ARGOSTE1=PhotoImage(file="images/sprites/argoste1.gif")



def play():
    winsound.PlaySound("sons/blanc.wav", winsound.SND_ASYNC)
    frame.destroy()



"""___________________________________________________________"""



###########################################
""" Initialisation du programme chroma """
###########################################




num = 1 # numéro du niveau


touches=[]



while True :
    if num == 1 :

        fenetre=Tk()
        fenetre.resizable(width=False, height=False)
        winsound.PlaySound("sons/quest.wav", winsound.SND_ASYNC | winsound.SND_LOOP)


        fenetre.title("chroma")
        fenetre.iconbitmap("@arbre.xbm")
        fenetre.geometry("1280x832+0+0")
        fenetre.lift()

        MENU0=PhotoImage(file="images/menu.gif")
        jack=PhotoImage(file="images/dialogues/bulle_jack.gif")

        # Dessin de l'interface
        boite = Canvas(fenetre,width=1280,height=832, bg="#dedede")
        boite.place(x=0,y=0)


        # Menu
        frame = Canvas(fenetre,width=1280,height=832, bg="#dedede")
        mon_menu = frame.create_image(0, 0, image=MENU0, anchor=NW)
        frame.pack(fill=BOTH, expand= 1)

        play = Button(frame,text="Play",width=10,height=2,font='bold',command=play)
        play.place(x=615,y=700)


        # Jeu
        X0, Y0 = 0, 0 # Positions
        Xj, Yj = -32, -32
        Xmachin, Ymachin = -32, -32
        Xfille, Yfille = -32, -32
        Xmario, Ymario = -32, -32
        Xluigi, Yluigi = -32, -32
        Xbinoclare, Ybinoclare = -32, -32
        Xchelou, Ychelou = -32, -32



        fenetre.bind_all("<KeyPress>",enfoncee)
        fenetre.bind_all("<KeyRelease>",relachee)


        Anim = 0 # Variables d'animation
        AnimM1 = 0
        AnimM2 = 0
        AnimJ = 0

        dialogue=0  # Variable Dialogues
        end=0 # Variable suppression bulle


        t1=0 # Variables Position
        t2=0
        b=0

        # Chargement du tableau

        box = 'boites/boite'+str(num)
        Decors = charge_boite(box)

        textures()
        dessine()

        pnj = boite.create_image(Xj, Yj, image=PNJ1)  #Sprites Perso
        sprite = boite.create_image(Xp, Yp, image=PERSOB1)
        monstre1 = boite.create_image(Xt1, Yt1, image=MONSTREH0, tags='trolln1')
        monstre2 = boite.create_image(Xt2, Yt2, image=MONSTREH0, tags='trolln2')

        animation()  #Animations Perso
        troll1()
        troll2()
        PNJ()


        fenetre.mainloop()




    if num >= 2 :

        fenetre=Tk()
        fenetre.resizable(width=False, height=False)

        fenetre.title("chroma")
        fenetre.iconbitmap("@arbre.xbm")
        fenetre.geometry("1280x832+0+0")
        fenetre.focus_force()



        # Dessin de l'interface
        boite = Canvas(fenetre,width=1280,height=832, bg="#dedede")
        boite.place(x=0,y=0)


        epee=PhotoImage(file="images/dialogues/bulle_epee.gif")
        tatidou=PhotoImage(file="images/dialogues/bulle_tatidou.gif")


        # Jeu
        X0, Y0 = 0, 0 # Positions
        Xj, Yj = -32, -32
        Xmachin, Ymachin = -32, -32
        Xfille, Yfille = -32, -32
        Xmario, Ymario = -32, -32
        Xluigi, Yluigi = -32, -32
        Xbinoclare, Ybinoclare = -32, -32
        Xchelou, Ychelou = -32, -32

        fenetre.bind_all("<KeyPress>",enfoncee)
        fenetre.bind_all("<KeyRelease>",relachee)


        Anim = 0 # Variables d'animation
        AnimM1 = 0
        AnimM2 = 0
        AnimJ = 0

        dialogue=0 # Variable Dialogues
        money=0 # Variable geme
        end=0 # Variable suppression bulle

        t1=0 # Variables Position
        t2=0
        b=0



        # Chargement du tableau

        box = 'boites/boite'+str(num)
        Decors = charge_boite(box)


        textures()
        dessine()

        pnj = boite.create_image(Xj, Yj, image=PNJ1)  #Sprite Perso
        sprite = boite.create_image(Xp, Yp, image=PERSOB1)
        monstre1 = boite.create_image(Xt1, Yt1, image=MONSTREH0, tags='trolln1')
        monstre2 = boite.create_image(Xt2, Yt2, image=MONSTREH0, tags='trolln2')

        animation()  #Animation Perso
        troll1()
        troll2()
        PNJ()


        fenetre.mainloop()





    if num == 15 :

        fenetre=Tk()
        fenetre.resizable(width=False, height=False)

        fenetre.title("chroma")
        fenetre.iconbitmap("@arbre.xbm")
        fenetre.geometry("1280x832+0+0")
        fenetre.focus_force()


        # Dessin de l'interface
        boite = Canvas(fenetre,width=1280,height=832, bg="#dedede")
        boite.place(x=0,y=0)

        tatidou_fin=PhotoImage(file="images/dialogues/bulle_tatidou_fin.gif")
        theargoste=PhotoImage(file="images/dialogues/bulle_argoste.gif")

        # Jeu
        X0, Y0 = 0, 0 # Positions
        Xj, Yj = -32, -32
        Xmachin, Ymachin = -32, -32
        Xfille, Yfille = -32, -32
        Xmario, Ymario = -32, -32
        Xluigi, Yluigi = -32, -32
        Xbinoclare, Ybinoclare = -32, -32
        Xchelou, Ychelou = -32, -32


        fenetre.bind_all("<KeyPress>",enfoncee)
        fenetre.bind_all("<KeyRelease>",relachee)


        Anim = 0 # Variables d'animation
        AnimM1 = 0
        AnimM2 = 0
        AnimJ = 0
        AnimA = 0

        dialogue=0 # Variable Dialogues
        end=0 # Variable suppression bulle

        t1=0 # Variables Position
        t2=0
        b=0


        # Chargement du tableau

        box = 'boites/boite'+str(num)
        Decors = charge_boite(box)


        textures()
        dessine()

        pnj = boite.create_image(Xj, Yj, image=PNJ1)  #Sprites Perso
        sprite = boite.create_image(Xp, Yp, image=PERSOB1)
        monstre1 = boite.create_image(Xt1, Yt1, image=MONSTREH0, tags='trolln1')
        monstre2 = boite.create_image(Xt2, Yt2, image=MONSTREH0, tags='trolln2')
        largoste = boite.create_image(Xa, Ya, image=ARGOSTE0, tags='boss')


        animation()  #Animations Perso
        troll1()
        troll2()
        PNJ()
        argoste()

        fenetre.mainloop()



    if num == 16:

        fenetre=Tk()
        fenetre.resizable(width=False, height=False)

        fenetre.title("chroma")
        fenetre.iconbitmap("@arbre.xbm")
        fenetre.geometry("1280x832+0+0")
        fenetre.focus_force()

        # Dessin de l'interface
        boite = Canvas(fenetre,width=1280,height=832, bg="#bddba8")
        boite.place(x=0,y=0)

        #Jeu
        X0, Y0 = 0, 0 # Positions
        Xj, Yj = -32, -32
        Xmachin, Ymachin = -32, -32
        Xfille, Yfille = -32, -32
        Xmario, Ymario = -32, -32
        Xluigi, Yluigi = -32, -32
        Xbinoclare, Ybinoclare = -32, -32
        Xchelou, Ychelou = -32, -32

        fenetre.bind_all("<KeyPress>",enfoncee)
        fenetre.bind_all("<KeyRelease>",relachee)

        Anim = 0 # Variables d'animation
        AnimJ = 0


        dialogue=0 # Variable Dialogues
        end=0 # Variable suppression bulle

        t1=0 # Variables Position
        t2=0
        b=0


        # Chargement du tableau

        box = 'boites/boite'+str(num)
        Decors = charge_boite(box)


        # Chargement des sprites spéciaux (colorés)
        PERSOG0=PhotoImage(file="images/couleur/perso1.gif")
        PERSOD0=PhotoImage(file="images/couleur/perso8.gif")
        PERSOG1=PhotoImage(file="images/couleur/perso2.gif")
        PERSOD1=PhotoImage(file="images/couleur/perso7.gif")
        PERSOH0=PhotoImage(file="images/couleur/perso5.gif")
        PERSOH1=PhotoImage(file="images/couleur/perso6.gif")
        PERSOB0=PhotoImage(file="images/couleur/perso3.gif")
        PERSOB1=PhotoImage(file="images/couleur/perso4.gif")
        PERSOAD0=PhotoImage(file="images/couleur/persoattaquedroite.gif")
        PERSOAD1=PhotoImage(file="images/couleur/persoattaquedroite.gif")
        PERSOAG0=PhotoImage(file="images/couleur/persoattaquegauche.gif")
        PERSOAG1=PhotoImage(file="images/couleur/persoattaquegauche.gif")
        PERSOAD1=PhotoImage(file="images/couleur/persoattaquedroite.gif")
        PERSOAB0=PhotoImage(file="images/couleur/persoattaquebas.gif")
        PERSOAB1=PhotoImage(file="images/couleur/persoattaquebas.gif")
        PERSOAH0=PhotoImage(file="images/couleur/persoattaquehaut.gif")
        PERSOAH1=PhotoImage(file="images/couleur/persoattaquehaut.gif")


        A=PhotoImage(file = "images/couleur/arbre.gif")
        R=PhotoImage(file = "images/couleur/sol.gif")
        S=PhotoImage(file = "images/couleur/maison1.gif")
        Z=PhotoImage(file = "images/couleur/maison2.gif")
        z=PhotoImage(file = "images/couleur/maison3.gif")

        #Eau(Optionel)
        E=PhotoImage(file = "images/couleur/eau.gif")
        I=PhotoImage(file = "images/couleur/eau_milieu_gauche.gif")
        L=PhotoImage(file = "images/couleur/eau_milieu_droite.gif")
        T=PhotoImage(file = "images/couleur/eau_haut_milieu.gif")
        G=PhotoImage(file = "images/couleur/eau_haut_gauche.gif")
        Q=PhotoImage(file = "images/couleur/eau_haut_droite.gif")
        U=PhotoImage(file = "images/couleur/eau_bas_milieu.gif")
        C=PhotoImage(file = "images/couleur/eau_bas_gauche.gif")
        J=PhotoImage(file = "images/couleur/eau_bas_droite.gif")

        MACHIN0=PhotoImage(file="images/npc/machin1.gif")
        MACHIN1=PhotoImage(file="images/npc/machin2.gif")

        FILLE0=PhotoImage(file="images/npc/fille1.gif")
        FILLE1=PhotoImage(file="images/npc/fille2.gif")

        MARIO0=PhotoImage(file="images/npc/mario1.gif")
        MARIO1=PhotoImage(file="images/npc/mario2.gif")

        LUIGI0=PhotoImage(file="images/npc/luigi1.gif")
        LUIGI1=PhotoImage(file="images/npc/luigi2.gif")

        BINOCLARE0=PhotoImage(file="images/npc/binoclare1.gif")
        BINOCLARE1=PhotoImage(file="images/npc/binoclare2.gif")

        CHELOU0=PhotoImage(file="images/npc/chelou1.gif")
        CHELOU1=PhotoImage(file="images/npc/chelou2.gif")


        dessine()


        #Sprites Perso
        machin = boite.create_image(Xmachin, Ymachin, image=MACHIN1)
        fille = boite.create_image(Xfille, Yfille, image=FILLE1)
        mario = boite.create_image(Xmario, Ymario, image=MARIO1)
        luigi = boite.create_image(Xluigi, Yluigi, image=LUIGI1)
        binoclare = boite.create_image(Xbinoclare, Ybinoclare, image=BINOCLARE1)
        chelou = boite.create_image(Xchelou, Ychelou, image=CHELOU1)

        sprite = boite.create_image(Xp, Yp, image=PERSOB1)


        animation()
        Machin()
        Fille()
        Mario()
        Luigi()
        Binoclare()
        Chelou()


        fenetre.mainloop()
        winsound.PlaySound("sons/blanc.wav", winsound.SND_ASYNC)
        break

History