# -*- coding: utf-8 -*-
# Un petit Mastermind à 4 chiffres.
# v.1.0
'''
-----------------------------------------------------------------------------
Un petit Mastermind à 4 chiffres ultra-léger, mais en contrepartie il faudra
faire attention à ce que vous tapez puisque par souci de légèreté il n'a pas
de protection, une mauvaise frappe et il s'en va ! Alors redoublez de doigté
avec ce que vous tapez, parce qu'un espace, une entrée vide, une lettre ou
autre chose et au revoir, la console disparaît de l'écran ! En fait, pour
que la partie se déroule normalement vous devez taper uniquement au minimum
le nombre de chiffres requis, et rien d'autre que des chiffres ! malgré tout,
s'il y a des chiffres supplémentaires, ils ne seront pas pris en compte.
Comme vous pouvez le constater, il est programmé sans liste, sans tuple, ni
dictionnaire sauf l'entrée du code pour une question pratique.
-----------------------------------------------------------------------------
'''
print("+--------------------------------------------------+")
print("¦       -=Un petit Mastermind à 4 chiffres=-       ¦")
print("¦Attention ! il est possible d'avoir plusieurs fois¦")
print("¦ le même chiffre, Les essais doivent comporter au ¦")
print("¦ moins 4 chiffres, s'il y en a en plus ils seront ¦")
print("¦ simplement ignorés,  vous avez droit à 20 essais ¦")
print("+--------------------------------------------------+")
print()
#------------------------------------------------ importation du module random.
from random import *
#------------------------------------------------ déclaration des variables globales.
global n
global jouer
global bon
global mal
global code_1, code_2, code_3, code_4
global sav_c1, sav_c2, sav_c3, sav_c4
global essai1, essai2, essai3, essai4
global sav_e1, sav_e2, sav_e3, sav_e4
global i, j
global bye
#------------------------------------------------ initialisation des variables.
n = 20 # <---nombre de coups maximum à jouer, il est possible de le changer à volonté.
jouer = [0, 0, 0, 0]
bon = 0
mal = 0
code_1 = 0
code_2 = 0
code_3 = 0
code_4 = 0
sav_c1 = 0
sav_c2 = 0
sav_c3 = 0
sav_c4 = 0
essai1 = 0
essai2 = 0
essai3 = 0
essai4 = 0
sav_e1 = 0
sav_e2 = 0
sav_e3 = 0
sav_e4 = 0
i = 0
j = 0
#------------------------------------------------ génération du code secret dans code_1, code_2, code_3, code_4.
code_1 = randint(0, 9)
code_2 = randint(0, 9)
code_3 = randint(0, 9)
code_4 = randint(0, 9)
#------------------------------------------------ auvegarde de l'essai dans sav_c1, sav_c2, sav_c3, sav_c4.
sav_c1 = code_1
sav_c2 = code_2
sav_c3 = code_3
sav_c4 = code_4
#------------------------------------------------préparation de l'essai dans essai1, essai2, essai3, essai4.
for j in range(n):
    jouer = input ("Essai ? ")
    essai1 = jouer[0]
    essai2 = jouer[1]
    essai3 = jouer[2]
    essai4 = jouer[3]
    
    essai1 = int(essai1)
    essai2 = int(essai2)
    essai3 = int(essai3)
    essai4 = int(essai4)
#------------------------------------------------ sauvegarde de l'essai dans sav_e1, sav_e2, sav_e3, sav_e4.
    sav_e1 = essai1
    sav_e2 = essai2
    sav_e3 = essai3
    sav_e4 = essai4
#------------------------------------------------ rechargement du code dans code_1, code_2, code_3, code_4.
    code_1 = sav_c1
    code_2 = sav_c2
    code_3 = sav_c3
    code_4 = sav_c4
#------------------------------------------------ mise à jour du compteur d'essais.
    i += 1
#------------------------------------------------ initialisation des corrections.
    bon = 0
    mal = 0
#------------------------------------------------ les bon et bon placés avec essai1, essai2, essai3, essai4.
    if essai1 == code_1 :
        essai1 = "10"
        code_1 = "11"
        bon += 1
##------------------------
    if essai2 == code_2 :
        essai2 = "10"
        code_2 = "11"
        bon += 1
##------------------------
    if essai3 == code_3 :
        essai3 = "10"
        code_3 = "11"
        bon += 1
##------------------------
    if essai4 == code_4 :
        essai4 = "10"
        code_4 = "11"
        bon += 1
#------------------------------------------------ les bon et mal placés avec essai1, essai2, essai3, essai4.
    if essai1 == code_2 :
        mal += 1
    if essai1 == code_3 :
        mal += 1
    if essai1 == code_4 :
        mal += 1
#------------------------
    if essai2 == code_1 :
        mal += 1
    if essai2 == code_3 :
        mal += 1
    if essai2 == code_4 :
        mal += 1
#------------------------
    if essai3 == code_1 :
        mal += 1
    if essai3 == code_2 :
        mal += 1
    if essai3 == code_4 :
        mal += 1
#------------------------
    if essai4 == code_1 :
        mal += 1
    if essai4 == code_2 :
        mal += 1
    if essai4 == code_3 :
        mal += 1
#------------------------------------------------ affichage de chaque tour du jeu, et sortie de boucle.
    print("             ",bon,"bon"," ",mal,"mal","    -",i,"-")
    if bon >= 4 :
        break
    if i == n :
        break        
#------------------------------------------------ affichage final.
print()
if bon >= 4 :
    print("Bravo vous avez trouvé en",i,"coups")
    print("le code était bon :", sav_c1, sav_c2, sav_c3, sav_c4)
else :
    print("Oups! perdu!, le code était", sav_c1, sav_c2, sav_c3, sav_c4)
print()
print("----------------------")
bye = (input ("Entrer pour Sortir...!"))








