# data[].attributes.attachment_link.description
See all the wonderful things fr lemoine has made

# data[].attributes.body
juste changer l'image de commencement

# data[].attributes.body
-faire interface avec Pygame (dessin du pendu voir si dessus, montre les lettres deja dite, ...)
-dire quand la lettre a deja ete dite (envoyer un message d’erreurs et renvoyer la question pour rechoisir une lettre)
montrer le nombre de coups qui reste ou le nombres de vie qui nous reste
- peut etre un ecran d'accueil ?!

# data[].attributes.attachment_link.readable_text
nom=raw_input("Nom du joueur: ")                                        # demande le nom de l'utilisateur
print("Bonjour, bienvenue sur le Jeu du Pendu")

from random  import choice                                              # choice permet de choisir un mot au hasard dans une liste, ici il faut choisir un mot

liste_mots=[                                

"adroit",
"abricot",
"analyse",
"anaphore",
"ballon",
"baguette",
"bouder",
"bicyclette",
"craies",
"casier",
"chaton",
"chavirement"
"disproportionner",
"dispute"
"divertir",
"divisions",
"encuve",
"exiler",
"exemple",
"extremiste",
"ferraille",
"feuille",
"figue",
"figuratif",
"geothermique",
"germer",
"gesticuler",
"gestionnaires",
"hallucinations",
"herbage",
"herbivore",
"hermaphrodite",
"idiome",
"idylliques",
"illegitimement",
"illicitement",
"jardinage",
"jasmin",
"jauge",
"java",
"kimono",
"kilometre"
"kinesitherapeute",
"kirsch",
"klaxonner",
"laborieusement",
"labyrinthe",
"laconique",
"lacrymogenes",
"manifestations",
"manigancer",
"manioc",
"manipuler",
"nettoyant",
"neurobiologie",
"neuf",
"nez",
"occasion",
"occuper",
"opalescence",
"opaques",
"pavillon",
"pavot",
"payer",
"paysan",
"questionnaire",
"querelles",
"querir",
"quinquagenaire",
"rejeter",
"rejaillir",
"rayon",
"relaxation",
"safari",
"sagesse",
"sagittaire",
"syndical",
"teinture",
"tubercule",
"tube",
"tuile",
"urgence",
"urticaires",
"utiliser",
"utopie",
"varan",
"variable",
"variation",
"vasculaire",
"wagon",
"whiskys",
"wisigothe",
"western",
"xylophone",
"yaourt",
"yoga",
"zen",
"zeste",
]
                                    
                                       
mot = choice(liste_mots)                                                # prend au hasard un mot dans la liste
mot = mot.rstrip()                                                      # supprime les caractere
                                                     
mot_devine = "-" * len(mot)                                             # au debut les tirets indiqueront le nombre de lettre du mots, par la suite ils seront remplace par les lettres
print(mot_devine)                                                       
nbr_essais = 0

while mot_devine != mot:                                                # la boucle se repete tant que le mot n'est pas trouve
    lettre = raw_input("Entrez une lettre ou '?' pour abandonner : ")       # on demande une lettre au joueur
    lettre = lettre[0]                                                  # evite des erreurs si un mot est entree au lieu d'une lettre
    if lettre == '?':                                                   # si le joueur entre le ?, on donnera le mot a trouver et on sortir de la boucle avec break
        print('Le mot etait',mot)                                       # affiche le mot a devine
        break
                                               # verifications des lettre en majuscules
    for i in range(len(mot)):
		#print lettre
		#print mot [i] 
		#print mot                                   
		if lettre == mot[i]:                                            # si la lettre se trouve a la position i
			mot_devine = mot_devine[:i] + lettre + mot_devine[i+1:]
    print(mot_devine)
    nbr_essais += 1
    
if mot == mot_devine:
    print('Bravo ! Le mot',mot,'a etais trouve en',nbr_essais, 'coups')






# data[].attributes.body
import pickle = nous sert a enregistrer un objet dans un fichier

import os= le fichier contient des fonction qui va nous permettre de creer ou supprimer des fichiers du repertoires

# data[].attributes.attachment_link.readable_text
# Ce fichier contient le jeu du pendu
# On utilise les donnees des deux autres fichier : donnee.py et fonctions.py

from donnee import *
from fonctions import *

score=recuperation_scores() # On recupere les scores de la partie

utilisateur= recuperation_nom_utilisateur()  # On recupere le nom de l'utilisateur

if utilisateur not in scores.keys(): # On utilise cette fonction si l'utilisaeur n'a pas de score
	score[utilisateur]=0 # 0 point pour commencer
	
continuer_partie='o' # variable pour savoir quand s'arrete la partie

while continuer_partie != 'n':
	print(" Joueur : {1} point(s)".format(utilisateur,scores[utilisateur]))
	mot_a_trouver=choisir_un_mot()
	lettre_trouvees=[]
	mot_trouve=recuperation_mot_masque(mot_a_trouver,lettre_trouvees)
	nbr_chances=nbr_coups
	while mot_a_trouver!=mot_trouve and nbr_chances>0:
		print (" Mot trouver {0} (encore {1} chances)".format(mot_trouve,nbr_chances))
		lettre=recuperation_lettre
		if lettre in lettre_trouvees: # La lettre a deja ete choisie
			print (" Vous avez deja choisi cette lettre. ")
		elif lettre in mot_a_trouver: # Si la lettre estdansle mot a trouver
			lettre_trouvees.append(lettre)
			print (" Bien joue!! ")
		else:
			nbr_chances-=1
			print (" Cette lettre ne se trouve pas dans ce mot... ")
		mot_trouve=recuperation_mot_masque(mot_a_trouver,lettre_trouvees)
		
		

# data[].attributes.headline
Programme des fonctions pour le jeu du pendu

# data[].attributes.subject
Programme des fonctions pour le jeu du pendu

# data[].attributes.attachment_link.readable_text
# Fichier contenant les fonctions servant pour le jeu du pendu
# On utilise les informations du programme donnee.py

import os
import pickle
from random import choice

from donnee import *

# Gestion des scores

def recuperation_scores():         # Cette fonction sert a recuperer les scores enregistrer si un fichier existe, on renvoie un dictionnaire mais vide
	if os.path.exists(fichier_scores): # Si fichier existe on le recupere
		fichier_scores=open(fichier_scores, "rb")
		mon_depickler=pickle.Unpickler(fichier_scores)
		scores=mon_depickler.load()
		fichier_scores.close()
	else: # Si le fichier n'existe pas
		score = {}
	return scores
		
def enregistrer_scores(scores): # Sert a enregistrer les scores dans le fichier_scores
	fichier_scores=open(fichier_scores, "wb") # On enleve les anciens scores
	mon_pickler=pickle.Pickler(fichier_scores)
	mon_pickler=dump(scores)
	fichier_scores.close()

def recuperation_nom_utilisateur(): # Fonction qui gere les elements saisies par l'utilisateur
	nom_utilisateur= input(" Entrer votre nom : ")
	nom_utilsateur=nom_utilisateur.capitalize() # On met la premiere lettre en majuscule et les autres en minuscules
	if not len(nom_utilisateur)>2: # Si le nom comporte moins de deux lettres, la question est redemander
		print ("Ce nom est invalide")
		return recuperation_nom_utilisateur() # On appele encore une fois la fonction pour avoir un nom valide
	else:
		return nom_utilisateur

def recuperation_lettre(): # Recuperation de la lettre sasie par l'utilisateur, si ce n'est pas une lettre on recommence
	lettre=input(" Taper une lettre : ")
	lettre=lettre.lower()
	if len(lettre)>1:
		print ("Vous n'avez pas saisie une lettre valide.")
		return recuperation_lettre
	else:
		return lettre
		
def	choisir_un_mot(): # Fonction qui renvoie le mot choisie au hasard dans la liste de mot
	return choice (liste_mots)
		
def recuperation_mot_masque(): # Fonction qui renvoie un mot masque
	mot_masque= ""
	for lettre in mot_complet:
		if lettre in lettre_trouvee:
			mot_masque+=lettre
		else:
			mot_masque+="*"
		return mot_masque

# data[].attributes.headline
Programme des données pour le jeu du pendu

# data[].attributes.subject
Programme des données pour le jeu du pendu

# data[].attributes.body
#Chloé

# data[].attributes.attachment_link.readable_text
# Fichier contenant les données, sous forme de variable pour le jeu du pendu 

# Nombre de coups par partie

nbr_coups= 10

# Nom fichier qui garde les scores en mémoire

fichier_scores= "scores"

# Liste des mots du jeu du pendu 

liste_mots= [

"adroit",
"abricot",
"analyse",
"anaphore",
"ballon",
"baguette",
"bouder",
"bicyclette",
"craies",
"casier",
"chaton",
"chavirement"
"disproportionner",
"dispute"
"divertir",
"divisions",
"encuve",
"exiler",
"exemple",
"extremiste",
"ferraille",
"feuille",
"figue",
"figuratif",
"geothermique",
"germer",
"gesticuler",
"gestionnaires",
"hallucinations",
"herbage",
"herbivore",
"hermaphrodite",
"idiome",
"idylliques",
"illégitimement",
"illicitement",
"jardinage",
"jasmin",
"jauge",
"java",
"kimono",
"kilometre"
"kinesitherapeute",
"kirsch",
"klaxonner",
"laborieusement",
"labyrinthe",
"laconique",
"lacrymogenes",
"manifestations",
"manigancer",
"manioc",
"manipuler",
"nettoyant",
"neurobiologie",
"neuf",
"nez",
"occasion",
"occuper",
"opalescence",
"opaques",
"pavillon",
"pavot",
"payer",
"paysan",
"questionnaire",
"querelles",
"querir",
"quiquagenaire",
"rejeter",
"rejaillir",
"rayon",
"relaxation",
"safari",
"sagesse",
"sagittaire",
"syndical",
"teinture",
"tubercule",
"tube",
"tuile",
"urgence",
"urticaires",
"utiliser",
"utopie",
"varan",
"variable",
"variation",
"vasculaire",
"wagon",
"whiskys",
"wisigothe",
"western",
"xylophone",
"yaourt",
"yoga",
"zen",
"zeste",
]

# data[].attributes.headline
Commencement d'un pendu sur python uniquement

# data[].attributes.subject
Commencement d'un pendu sur python uniquement

# data[].attributes.body
Clique dessus

# data[].attributes.body
http://www.nymphomath.ch/pj/pendu/chapitre7.pdf

# data[].attributes.body
Algorithme a refaire sur python

# data[].attributes.body
→ Initialisation de pygame

2/ import pygame

3/ from pygame.locals import *

5/ pygame.init()

→ Création d'une fenêtre

7/ fenetre = pygame,display.set_mode(( 640, 480))

9/ continuer = 1
11/ while continuer :

12/ continuer = 0
(pour que la fenetre reste ouverte on crée une variable qui quand elle est = 0 elle se ferme mais il faut pour qu 'elle reste ouverte quel soit égale a 1 et donc on crée une boucle qui quand elle n'est pas égale a 0 elle reste ouverte (la fenetre))

fond = (choisir une image de fond)

→  Utilisation GTK création de bouton et leur attribuer une fonctionnalité
Bouton DEMARER , QUITTER, SON , ... (autre)
il faut donc importer GTK dès le debut
1/ import gtk

# data[].attributes.headline
Logiciels pour réaliser les différentes images?

# data[].attributes.subject
Logiciels pour réaliser les différentes images?

# data[].attributes.body
Photoshop

GIMP

Paint

# data[].attributes.body
Python

Pygame

Glade

Turtle

# data[].attributes.body
l'interface du jeu est divisée en sept parties:

la zone du mot à deviner: mot tiré au sort par l'ordinateur dans une liste

la zone du dessin du pendu: le dessin apparaît quand le joueur propose une mauvaise lettre

inscrire les lettres grâce aux clavier dans une ligne de saisie puis appuyer sur entrer

fin de partie et la possibilité de recommencer une autre partie

possibilité que le joueur se connecte en indiquant son prénom

l'ordinateur gère les scores des joueurs

possibilité au joueurs de choisir une thématique au début

# data[].attributes.attachment_link.description
Python est un langage de programmation qui nécessite d'écrire moins de lignes de code que le C ou le C++. Il se veut simple, concis et lisible. On l'utilise aussi bien pour créer des scripts que des programmes ou des sites web. Il est très populaire, notamment chez Google.