#cahier des charges:
#affichage commandes
#creation tableau(toutes valeur = 0)
#-liste commande(prends la valeur de la souris et le stock dans une liste(x,y))
#fonction:
#-tableau
#-cliqué (associ renvio true si il y a un  clique gauche)
#-croix(affiche une croix sur la case cliquée et joue un son) 
#-rond(affiche un rond sur la case cliquée et joue un son  )
#-bkgrnd(crée un arrière plan) 
#-musique(joue musique)


import pyxel
pyxel.init(128,128,title="Morpion")
pyxel.load("res.pyxres")
cases_colonne =[21,50,79]
cases_ligne =[21,50,79]
tableau = [[0,0,0],
           [0,0,0],
           [0,0,0]]
tour_joueur = [1,2,1,2,1,2,1,2,1]
taille_case=29
joueur=1
tour=0
def update():
    if pyxel.btnp(pyxel.KEY_Q):
        pyxel.stop()
def draw():
    global joueur, tableau, tour
    demarrage()
    musique()
    if pyxel.frame_count>120:
        bkgrnd()
        tableau_affichage()
        souris_visble()
        pyxel.text(0,20,str(clique()),0)
        colonne=(pyxel.mouse_x-21)// taille_case
        ligne=(pyxel.mouse_y-21)// taille_case
        pyxel.text(0,0,str(colonne),0)
        pyxel.text(0,10,str(ligne),0)
        pyxel.text(0,30,str(tableau),0)
        
        pyxel.text(0,40,str(joueur),0)
        if clique()==True:
            if joueur==1 and tableau[ligne][colonne]==0 :
                pyxel.sound(2).speed = 10
                tableau[ligne][colonne]=1
                joueur=2
                tour=tour+1
            elif joueur==2 and tableau[ligne][colonne]==0 :
                pyxel.sound(3).speed = 10
                tableau[ligne][colonne]=2
                joueur=1
                tour=tour+1
        for l in range(3):
            for c in range(3):
                valeur = tableau[l][c]
                if valeur==1:
                    croix(cases_colonne[c],cases_ligne[l])
                elif valeur==2:
                    rond(cases_colonne[c],cases_ligne[l])
                else:
                    pass
        for e in range(3):
            if(tableau[e][0]==tableau[e][1]==tableau[e][2]!=0 ):
                pyxel.cls(0)
                pyxel.text(45,40,"Game over",8)
                pyxel.text(45,50,"Pressez F5",8)
                if tableau[e][0]==2:
                    pyxel.text(15,60,"Le gagnant est le joueur 2 ",2)
                else:
                    pyxel.text(15,60,"Le gagnant est le joueur 1 ",1)
                pyxel.stop()
            elif(tableau[0][0]==tableau[1][1]==tableau[2][2]!=0) :
                pyxel.cls(0)
                pyxel.text(45,40,"Game over",2)
                pyxel.text(45,50,"Pressez F5",2)
                if tableau[0][0]==2:
                    pyxel.text(15,60,"Le gagnant est le joueur 2 ",2)
                else:
                    pyxel.text(15,60,"Le gagnant est le joueur 1 ",1)
                pyxel.stop()
            elif(tableau[0][2]==tableau[1][1]==tableau[2][0]!=0) :
                pyxel.cls(0)
                pyxel.text(45,40,"Game over",2)
                pyxel.text(45,50,"Pressez F5",2)
                if tableau[0][2]==2:
                    pyxel.text(15,60,"Le gagnant est le joueur 2 ",2)
                else:
                    pyxel.text(15,60,"Le gagnant est le joueur 1 ",1)
                pyxel.stop()
            elif(tableau[0][e]==tableau[1][e]==tableau[2][e]!=0 ):
                pyxel.cls(0)
                pyxel.text(45,40,"Game over",2)
                pyxel.text(45,50,"Pressez F5",2)
                if tableau[0][e]==2:
                    pyxel.text(15,60,"Le gagnant est le joueur 2 ",2)
                else:
                    pyxel.text(15,60,"Le gagnant est le joueur 1 ",1)
                pyxel.stop()
            elif tour==9:
                pyxel.cls(0)
                pyxel.text(45,40,"Game over",2)
                pyxel.text(45,50,"Pressez F5",2)
                pyxel.text(50,60,"Match nul",8)
        
def tableau_affichage():
    """
    Crea:Lucas
    In:rien
    Out:rien
    fct°:affiche l'interface du tableau de jeux
    """
    pyxel.blt(19,19,0,0,0,90,90,colkey=7)
def bkgrnd():
    pyxel.blt(0,0,0,0,96,128,128)
def musique():
    """
    Créa:Aurélien
    In:rien
    out:rien
    fct°:lance musique si m est pressé
    """
    if pyxel.btn(pyxel.KEY_M):
        pyxel.playm(0,loop=True)
def demarrage():
    """
    Créa:Aurélien
    In:rien
    out:rien
    fct°:affiche les commandes du jeu au démarrage pendant 5 secondes
    """
    if pyxel.frame_count<120:
        pyxel.cls(0)
        pyxel.text(4,38,"Pour jouer, utiliser la souris",8)
        pyxel.text(0,58,"Pour lancer la musique presser M",8)
        pyxel.text(12,68,"Pour l'arreter, presser Q",8)
    else:
        pyxel.cls(7)

def souris_visble():
    """
    Créa:Aurélien
    In:rien
    out:rien
    fct°:affiche la souris
    """
    pyxel.mouse(True)

def clique():
    """
    Créa:Aurélien
    In: rien
    out:retourne True
    fct°:détermine si la souris a cliquée
    """
    if pyxel.btn(pyxel.MOUSE_BUTTON_LEFT)==True:
        return True

def croix(x,y):
    """
    Crea:Lucas
    in:reçoit les coordonées de départ de la croix
    out:rien
    fct°:affiche une croix
    """
    pyxel.line(x,y,x+26,y+26,8)
    pyxel.line(x,y+26,x+26,y,8)
    


def arrière_plan():
    """
    Crea:Lucas
    In:rien
    Out:rien
    fct°:affiche un arrière plan
    """
    pyxel.blt(128,128,0,0,0,96,255)
    
def rond(x,y):
    """
    Crea:lucas
    in:reçoit les cooedonnées de départ du rond
    out:rien
    fct°:affiche un rond
    """
    pyxel.circb((x+13),(y+13),13,2)
pyxel.run(update, draw)