import graphics

hauteur_en_cases = 8
largeur_en_cases = hauteur_en_cases
taille_cote_case = 45

taille_borde = 3

taille_largeur_fenetre = taille_cote_case * largeur_en_cases
taille_hauteur_fenetre = taille_cote_case * hauteur_en_cases

fenêtre = graphics.GraphWin("Damier", taille_largeur_fenetre, taille_hauteur_fenetre)

def dessine_case (x, y, couleur):
    point_en_haut_à_gauche = graphics.Point (x * taille_cote_case + taille_borde, y * taille_cote_case + taille_borde)
    point_en_bas_à_droite = graphics.Point ((x + 1) * taille_cote_case - taille_borde, (y + 1) * taille_cote_case - taille_borde)
    carré = graphics.Rectangle (point_en_haut_à_gauche, point_en_bas_à_droite)
    carré.setFill (couleur)
    carré.draw (fenêtre)

def dessine_damier ():
    debutColonneClaire = True
    claire = debutColonneClaire
    for x in range (largeur_en_cases):
        claire = debutColonneClaire
        for y in range (hauteur_en_cases):
            if claire:
                couleur = 'yellow'
            else:
                couleur = 'brown'
            dessine_case (x, y, couleur)
            claire = not claire
        debutColonneClaire = not debutColonneClaire

def dessine_dame (x, y, couleur):
    point_centre = graphics.Point ((x + 0.5) * taille_cote_case, (y + 0.5) * taille_cote_case)
    cercle = graphics.Circle (point_centre, taille_cote_case / 2 - taille_borde * 2)
    cercle.setFill (couleur)
    cercle.draw (fenêtre)

# Le dictionnaire a comme clés des couples de coordonnées (par exemple (0, 1))
# et comme valeurs une des deux couleurs 'white' ou 'black', en tant que chaîne.
def dessine_dames (dictionnaire):
    for coordonnées in dictionnaire:
        x, y = coordonnées
        couleur = dictionnaire [coordonnées]
        dessine_dame (x, y, couleur)

position_initiale = {}
for x in range (largeur_en_cases):
    for y in [0, 1]:
        position_initiale [x, y] = 'black'
    for y in [hauteur_en_cases - 2, hauteur_en_cases - 1]:
        position_initiale [x, y] = 'white'

dessine_damier ()
dessine_dames (position_initiale)

fenêtre.getMouse() # pause for click in window
fenêtre.close()
