# Créé par bendahmane, le 06/03/2017 en Python 3.2
#Import des fonctions aleatoire
"""Import"""

from tkinter import *

import random


#On defini les couleurs selon la valeur de la variable 'valaur'
"""Couleur aleatoire"""

def couleurIA():

    valeur = random.randint(1,8)

    if (valeur==1):

        couleur='Rouge'

    elif (valeur==2):

        couleur='Bleu'

    elif (valeur==3):

        couleur='Vert'

    elif (valeur==4):

        couleur='Jaune'

    elif (valeur==5):

        couleur='Orange'

    elif (valeur==6):

        couleur='Blanc'

    elif (valeur==7):

        couleur='Violet'

    elif (valeur==8):

        couleur='Fuchsia'

    return couleur


#Le joueur choisi sa couleur

"""Couleur Joueur"""

def couleurPlayer():

    n=1     # on initialise la variable n aÂ�  1

    while n!=5:     #tant que la variable n est different de 5 on boucle

        # on demande au jour le choix de sa couleur et on place la valeur dans la variable VALEUR par une boite et on indique aussi le rappel de couleurs
        valeur = str(input('Choix couleur en numero : ' + str(n) + ' - Rouge : Bleu : Vert : Jaune : Orange : Blanc : Violet : Fuchsia'))
        #Selon le choix du joueur on test la valeur de la variable VALEUR
        if (valeur=='Rouge' or valeur=='Bleu' or valeur=='Vert' or valeur=='Jaune' or valeur=='Orange' or valeur=='Blanc' or valeur=='Violet' or valeur=='Fuchsia'):

            n+=1    #on incremente n (nombre de couleur)

            codePlayer.append(valeur)  # on ajoute la couleur saisie a la liste du joueur

        else:

            print('La couleur n\'existe pas')   # si la couleur saisie n exite pas on l' ecrit



"""Definition variable et type-list"""
#on definit de variables liste (tableau)
codePlayer=[]

codeIA=[]

#on initialise la u, p, n et t
u=0

p=0

n=1

t=1



"""Selection de couleur aleatoire"""
#on boucle tant que u est different de 4 (Nombre de couleur a trouver)
while u!=4:

    codeIA.append(couleurIA())  #on ajoute au tableau codeIA le contenu de couleurIA

    u+=1     #on incremente u



#print(codeIA)



"""Nombre de tour""" #soit on donne le choix au joueur du nombre de coup ici on le defini a 10

#on definit la variable x qui est le nombre de coups
x=int  #(input('Quel est votre nombre de tour pour effectuer le Mastermind ? ='))

x=10     # 10 coups

#on affiche le nombre de coups
print('La partie est faite en ', x , ' coups')

"""Fin"""

#on boucle tant que le code de couleur du joueur est different de celui de l ordinateur
while codePlayer!=codeIA:

    couleurPlayer()

    a=x-t  #on donne a la a le nombre de coup - 1

    if codePlayer==codeIA:    #si le code couleur du joueur est egale a celui de l ordinateur

    # on affiche que le joueur gagne
        print('Bravo le code ' + str(codePlayer) + ' est correct, tu as battue le Mastermind en ' + str(t) + ' tour(s)')

    # sinon
    elif (codePlayer!=codeIA)*(a>0)==1:

    # on affiche que le code n est pas bon et le nombre de coup restant
        print('' + str(codePlayer) + ' n\'est pas le bon code.\nIl te reste ' + str(a) + ' tour(s)')

    # si le code couleur index 0 et egale au code ordinateur index 0
        if (codePlayer[0]==codeIA[0]):

    #  la couleur du meme index est correcte a la bonne place
            indic1=('La couleur ' + str(codePlayer[0]) + ' est correcte')

    #   sinon
        elif (codePlayer[0]==codeIA[1] or codePlayer[0]==codeIA[2] or codePlayer[0]==codeIA[3]):

     #  la couleur du meme index est correcte mais pas a la bonne place
            indic1='La couleur ' + str(codePlayer[0]) +' existe mais n\'est pas a la bonne place'

        else:

            indic1='Errone'    #  sinon la couleur est pas bonne


        # si le code couleur index 1  et egale au code ordinateur index 1
        if (codePlayer[1]==codeIA[1]):

        #  la couleur du meme index est correcte a la bonne place
            indic2=('La couleur ' + str(codePlayer[1]) + ' est correcte')

        # sinon
        elif (codePlayer[1]==codeIA[0] or codePlayer[1]==codeIA[2] or codePlayer[1]==codeIA[3]):

        #  la couleur du meme index est correcte mais pas a la bonne place
            indic2='La couleur ' + str(codePlayer[1]) +' existe mais n\'est pas a la bonne place'

        else:

            indic2='Errone'     #  sinon la couleur est pas bonne

        # si le code couleur index 2  et egale au code ordinateur index 2
        if (codePlayer[2]==codeIA[2]):

        #  la couleur du meme index est correcte a la bonne place
            indic3=('La couleur ' + str(codePlayer[2]) + ' est correcte')

        # sinon
        elif (codePlayer[2]==codeIA[0] or codePlayer[2]==codeIA[1] or codePlayer[2]==codeIA[3]):

        #  la couleur du meme index est correcte mais pas a la bonne place
            indic3='La couleur ' + str(codePlayer[2]) +' existe mais n\'est pas a la bonne place'


        else:

            indic3='Errone'         #  sinon la couleur est pas bonne

        # si le code couleur index 3  et egale au code ordinateur index 3
        if (codePlayer[3]==codeIA[3]):

        #  la couleur du meme index est correcte a la bonne place
            indic4=('La couleur ' + str(codePlayer[3]) + ' est correcte')

         # sinon
        elif (codePlayer[3]==codeIA[0] or codePlayer[3]==codeIA[1] or codePlayer[3]==codeIA[2]):

        #  la couleur du meme index est correcte mais pas a la bonne place
            indic4='La couleur ' + str(codePlayer[3]) +' existe mais n\'est pas a la bonne place'


        else:

            indic4='Errone'             #  sinon la couleur est pas bonne

        # on imprime les 4 resultat des index
        print(indic1 + ', ' + indic2 + ', ' + indic3 + ', ' + indic4 + '.')

        # on vide la liste des chois de couleur du joueur
        codePlayer=[]

        t+=1    # on increment la variable t

    elif (codePlayer!=codeIA)*(a==0)==1:   # Si il ne reste plus de coup et que le code joueur est different de celui de l ordinateur

        # on imprime que le joueur a perdu
        print('Tu as perdu contre le Mastermind, tu n\'as plus de tour')

        # et on ecrit le bon code couleur
        print(str(codeIA)+ ' etait la bonne reponse')

        # et on donne au code joueur celui de l ordinateur
        codePlayer=codeIA