'''
Created on 27 dec. 2012

@author: thierrykrebs
'''

# Ce code regroupe les parties de codes#

#----------Import des bibliotheques----------

from __future__ import division
from lycee import *
#from matplotlib import *
from Tkinter import *
import os
import os.path
rep = os.getcwd()
#----------Definit le repertoire de travail----------

#os.chdir("/Volumes/DATA/Users/thierrykrebs/Documents/ownCloud/ISN")
os.chdir("C:\\Users\\thierry\\Documents\\programmation\\Python\\ISN")
    # test Tkinter
parent='nom'
saisir='adefinir'
nomsdoublettes=''
def repondre(parent,boutton):
    Fenetre = Tk()
    Fenetre.title(parent)
    Fenetre.configure(bg='grey')
    Fenetre.tk_focusFollowsMouse()
    nom = Label(Fenetre, text = parent, bg='grey')
    reponse=StringVar()
    lareponse = Entry(textvariable=reponse, bd=5,background='white',relief='sunken', width=50)
    valeur = Button(Fenetre, text = boutton,bg='grey',justify='left', command=Fenetre.quit)
    affichage = Label(Fenetre,bg='grey', width=50)
    nom.pack()
    lareponse.pack()
    valeur.pack()
    affichage.pack()
    Fenetre.mainloop()
    saisir=lareponse.get()
    Fenetre.destroy()
    return saisir



def doublette(nbd):
    nomd = nbd*['']
    nomj = (nbd*2)*['']
    prenom=(nbd*2)*['']
    global nomsdoublettes
    nomsdoublettes=''
    #Boucle d'assignation des noms de chaques joueurs et des doublettes
    inbd =0
    for inbd in range(0,(nbd)):
        iterateur_fichier = 1

        parent='Nom du premier joueur de la doublette '+str(inbd+1)+" ?"
        boutton='suivant >'
        saisir=repondre(parent,boutton)
        nomj[(inbd*2)]=saisir
        print nomj[(inbd*2)]
        parent='Prenom du premier joueur de la doublette '+str(inbd+1)+" ?"
        boutton='suivant >'
        saisir=repondre(parent,boutton)
        prenom[(inbd*2)]=saisir
        print prenom[(inbd*2)]
        #Enregistrement joueur 1
        joueur_a_enregistrer = nomj[(inbd*2)]
        prenom_joueur=prenom[(inbd*2)]
        while (os.path.isfile("joueur_"+prenom_joueur+"_"+joueur_a_enregistrer+str(iterateur_fichier)+".txt") == True):
                    iterateur_fichier = iterateur_fichier + 1#Tant qu'il existe un fichier: joueurX.txt

        fichier_travail = open('joueur_'+prenom_joueur+"_"+joueur_a_enregistrer+str(iterateur_fichier)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
        fichier_travail.write(joueur_a_enregistrer+";"+prenom_joueur)#Ecrire le joueur dans le fichier, formater joueur_a_enregistrer avant
        fichier_travail.close()
        parent='Nom du second joueur de la doublette '+str(inbd+1)+" ?"
        boutton='suivant >'
        saisir=repondre(parent,boutton)
        nomj[(inbd*2+1)]=saisir
        print nomj[(inbd*2+1)]

        parent='Prenom du second joueur de la doublette '+str(inbd+1)+" ?"
        boutton='suivant >'
        saisir=repondre(parent,boutton)
        prenom[(inbd*2+1)]=saisir
        print prenom[(inbd*2+1)]
        #Enregistrement joueur 2
        joueur_a_enregistrer = nomj[(inbd*2+1)]
        prenom_joueur=prenom[(inbd*2+1)]
        while (os.path.isfile("joueur_"+prenom_joueur+"_"+joueur_a_enregistrer+str(iterateur_fichier)+".txt") == True):
                    iterateur_fichier = iterateur_fichier + 1#Tant qu'il existe un fichier: joueurX.txt

        fichier_travail = open('joueur_'+prenom_joueur+"_"+joueur_a_enregistrer+str(iterateur_fichier)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
        fichier_travail.write(joueur_a_enregistrer+";"+prenom_joueur)#Ecrire le joueur dans le fichier, formater joueur_a_enregistrer avant
        fichier_travail.close()

        #Enregistrement doublette
        nomd[inbd] = nomj[(inbd*2)]+" - "+nomj[(inbd*2+1)]
        doublette_a_enregistrer = nomd[(inbd)]
        nomsdoublettes=nomsdoublettes+";"+nomd[inbd]
        #print nomsdoublettes
        iterateur_fichier = 1
        while (os.path.isfile("doublette_"+nomd[(inbd)]+str(iterateur_fichier)+".txt") == True):
                iterateur_fichier = iterateur_fichier + 1
        fichier_travail = open('doublette_'+nomd[(inbd)]+str(iterateur_fichier)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
        fichier_travail.write(doublette_a_enregistrer+";"+prenom[(inbd*2)]+";"+nomj[(inbd*2)]+";"+prenom[(inbd*2+1)]+";"+nomj[(inbd*2+1)]+";")#Ecrire le joueur dans le fichier, formater joueur_a_enregistrer avant
        fichier_travail.close()

        #Fin enregistrement
    return nomsdoublettes




#----------Initialisation (p1)----------

#Initialisation des informations relatives a la competition
#raw_input ("lieu")
parent='lieu'
boutton='suivant >'
saisir=repondre(parent,boutton)
lieu=saisir
print lieu
iterateur_fichier = 1
while (os.path.isfile("parcours_"+lieu+str(iterateur_fichier)+".txt") == True):
                    iterateur_fichier = iterateur_fichier + 1

fichier_travail = open('parcours_'+lieu+str(iterateur_fichier)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
fichier_travail.write(lieu+";")#Ecrire le joueur dans le fichier, formater joueur_a_enregistrer avant
fichier_travail.close()

#nbtrou = input ("nombre de trou")
parent='nombre de trous'
boutton='suivant >'
saisir=repondre(parent,boutton)
nbtrou=int(float(saisir))
print nbtrou
fichier_travail = open('parcours_'+lieu+str(iterateur_fichier)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
fichier_travail.write(str(nbtrou)+";")#Ecrire le joueur dans le fichier, formater joueur_a_enregistrer avant
fichier_travail.close()


#Boucle demande pour chaque trou le par correspondant
partr = nbtrou*['']
i=0
while i <= nbtrou-1:
    parent='par du trou '+str(i+1)
    boutton='suivant >'
    saisir=repondre(parent,boutton)
    partr[i] = int(float(saisir))
    print partr[i]
    fichier_travail = open('parcours_'+lieu+str(iterateur_fichier)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
    fichier_travail.write(str(partr[i])+" ; ")#Ecrire le joueur dans le fichier, formater joueur_a_enregistrer avant
    fichier_travail.close()
    i=i+1
#</endwhile>

#date = raw_input ("date")
parent='date'
boutton='suivant >'
saisir=repondre(parent,boutton)
date=saisir
print date


#nbtr_jouer = input ("nombre de trou a jouer")
parent='nombre de trous a jouer'
boutton='suivant >'
saisir=repondre(parent,boutton)
nbtr_jouer=int(float(saisir))
print nbtr_jouer

#notr_depart = input ("numero de trou de depart")
parent='numero du trou de depart'
boutton='suivant >'
saisir=repondre(parent,boutton)
notr_depart=int(float(saisir))
print notr_depart

#Selection du mode de jeu
#modjeu = raw_input ("mode de jeu")

root = Tk()
v = IntVar()
v.set(1)  # initializing the choice, i.e. Python
modejeu = [
               ("individuel",1),
               ("doublettes",2),
               ("UNSS",3)
               ]
def ShowChoice():
    modjeu=v.get()
    return modjeu
Label(root,text="""choisissez le type de competition:""",justify = LEFT,padx = 20).pack()
for txt, val in modejeu:
    Radiobutton(root,text=txt,indicatoron = 0,width = 20,padx = 20,variable=v,command=ShowChoice,value=val).pack(anchor=W)
Button(root, text = boutton, command=root.quit).pack()
mainloop()
root.destroy()


#----------Gestion du mode de jeu individuel (p2)----------
modjeu=ShowChoice()
print modjeu
if modjeu == 1 :#'individuel':
    #nbj = input('quel est le nombre de joueur?:')
    parent='Quel est le nombre de joueurs ? '
    boutton='suivant >'
    saisir=repondre(parent,boutton)
    nbj = int(float(saisir))
    print nbj

    it = 1
    while (os.path.isfile("partie_"+date+str(it)+".txt") == True):
        it = it + 1
    fichier_travail = open('partie_'+date+str(it)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
    fichier_travail.write("date "+date+" ; lieu "+lieu+" ; nombre de trou "+str(nbtr_jouer)+" ; depart "+str(notr_depart)+" ; mod de jeu "+str(modjeu)+" ; nombre de joueur "+str(nbj))#Ecrire le joueur dans le fichier, formater joueur_a_enregistrer avant
    fichier_travail.close()

    nomj = nbj*['']
    prenom =nbj*['']
    #Boucle d'assignation des noms de chaques joueurs
    inbd =0

    for inbd in range(0,(nbj)):
        iterateur_fichier = 1
        #nomj[(inbd)] = raw_input ("Nom du joueur"+str(inbd+1))
        parent='Nom du joueur '+str(inbd+1)+" ?"
        boutton='suivant >'
        saisir=repondre(parent,boutton)
        nomj[(inbd)]=saisir
        print nomj[(inbd)]
        parent='Prenom du joueur '+str(inbd+1)+" ?"
        boutton='suivant >'
        saisir=repondre(parent,boutton)
        prenom[(inbd)]=saisir
        print prenom[(inbd)]
        #Enregistrement joueur
        joueur_a_enregistrer = nomj[(inbd)]
        prenom_joueur=prenom[(inbd)]
        while (os.path.isfile("joueur_"+prenom_joueur+"_"+joueur_a_enregistrer+str(iterateur_fichier)+".txt") == True):
                    iterateur_fichier = iterateur_fichier + 1#Tant qu'il existe un fichier: joueurX.txt

        fichier_travail = open('joueur_'+prenom_joueur+"_"+joueur_a_enregistrer+str(iterateur_fichier)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
        fichier_travail.write(joueur_a_enregistrer+";"+prenom_joueur)#Ecrire le joueur dans le fichier, formater joueur_a_enregistrer avant
        fichier_travail.close()
        fichier_travail = open('partie_'+date+str(it)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
        fichier_travail.write(prenom[(inbd)]+";"+nomj[(inbd)]+";")#Ecrire le joueur dans le fichier, formater joueur_a_enregistrer avant
        fichier_travail.close()
        #</endwhile>
#</endif>


#----------Gestion du mode de jeu doublette (p3)----------


if modjeu == 2:
    parent='Quel est le nombre de doublettes ? '
    boutton='suivant >'
    saisir=repondre(parent,boutton)
    nbd = int(float(saisir))
    print nbd
    nomsdoublettes=doublette(nbd)
    #equipe = nomsdoublettes
    it = 1
    while (os.path.isfile("partie_"+date+str(it)+".txt") == True):
            it = it + 1
    fichier_travail = open('partie_'+date+str(it)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
    fichier_travail.write(date+";"+lieu+";"+str(nbtr_jouer)+";"+str(notr_depart)+";"+str(modjeu)+";"+str(nbd))
    fichier_travail.close()
    fichier_travail = open('partie_'+date+str(it)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
    fichier_travail.write(nomsdoublettes)#Ecrire le joueur dans le fichier, formater joueur_a_enregistrer avant
    fichier_travail.close()

    #</endwhile>
#</endif>


#----------Gestion du mode de jeu equipe unss (p4)----------


if modjeu == 3:
    parent='Quel est le nombre d equipes UNSS ?'
    boutton='suivant >'
    saisir=repondre(parent,boutton)
    nombre_equipe = int(float(saisir))
    print nombre_equipe
    equipe = nombre_equipe*['']
    parent='De combien de doublettes sont composees les equipes ?'
    boutton='suivant >'
    saisir=repondre(parent,boutton)
    nbde = int(float(saisir))
    print nbde
    it = 1
    while (os.path.isfile("partie_"+date+str(it)+".txt") == True):
            it = it + 1
    fichier_travail = open('partie_'+date+str(it)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
    fichier_travail.write("date "+date+" ; lieu "+lieu+" ; nombre de joueur "+str(nbtr_jouer)+" ; depart "+str(notr_depart)+" ; mod de jeu "+str(modjeu)+" ; nombre d'equie "+str(nombre_equipe)+"; nombre de doublette "+str(nbde))
    fichier_travail.close()
    inbe =0
    for inbe in range(0,(nombre_equipe)):
        it2 = 1
        parent='quel est le nom de l equipe '+str(inbe+1)+'?'
        boutton='suivant >'
        saisir=repondre(parent,boutton)
        equipe[(inbe)] = saisir
        print equipe[(inbe)]
        nomsdoublettes=doublette(nbde)
        while (os.path.isfile("equipe_"+equipe[(inbe)]+str(it2)+".txt") == True):
            it2 = it2 + 1
        fichier_travail = open('equipe_'+equipe[(inbe)]+str(it2)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
        fichier_travail.write(equipe[(inbe)]+nomsdoublettes+";")
        fichier_travail.close()
        fichier_travail = open('partie_'+date+str(it)+'.txt','a')#Cree et ouvre un fichier joueurX+1, avec X dernier joueur enregistre
        fichier_travail.write(equipe[(inbe)]+";")#Ecrire le joueur dans le fichier, formater joueur_a_enregistrer avant
        fichier_travail.close()

#--------------------------- Fonction de gestion d'un trou ------------------------
def GestionTrou(numTrou):
    Fenetre = Tk()
    Fenetre.title("Score du trou " + str(numTrou+1))
    Fenetre.configure(bg='grey')
    Fenetre.tk_focusFollowsMouse()
    igt=0
    labelj = nbj*['']
    score = nbj*['']
    scoreTrou = nbj*['']
    saisi = nbj*['']
    for igt in range(0,(nbj)):
        labelj[igt] = Label(Fenetre, text = nomj[igt]+" "+prenom[igt], bg='grey')
        score[igt]=StringVar()
        scoreTrou[igt] = Entry(textvariable=score[igt], bd=5,background='white',relief='sunken', width=50)
        labelj[igt].pack()
        scoreTrou[igt].pack()
    valeur = Button(Fenetre, text = "Valider",bg='grey',justify='left', command=Fenetre.quit)
    affichage = Label(Fenetre,bg='grey', width=50)
    valeur.pack()
    affichage.pack()
    Fenetre.mainloop()
    for igt in range(0,(nbj)):
        saisi[igt]=scoreTrou[igt].get()
    Fenetre.destroy()
    return saisi

#------------------------ Gestion partie ----------------------------------------
scoreTrou = nbj*['']
ijeu = 0
for ijeu in range(0,(nbtrou)):
    scoreTrou[ijeu]=GestionTrou(ijeu)
    fichier_travail = open('parcours_'+lieu+str(iterateur_fichier)+'.txt','a')#ouvre et edite
    fichier_travail.write(saisi+" ; ")#Ecrire le joueur dans le fichier, formater joueur_a_enregistrer avant
    fichier_travail.close()
    ijeu = ijeu+1