Пример #1
0
def enregistre_score (nom_du_joueur = "AAA"):
	""" Enregistre le score actuel dans le top 5 des scores s'il est superieur a un de ces derniers
		
		@return : None
		
		@throw : 
			moteur.PasEnCoursDePartie
			persistance.CleInvalide
			persistance.FichierInvalide
	"""
	score_actuel = calcul_score () # Throw PasEnCoursDePartie si besoin ... 

	top_score = recup_score ()
	nom = recup_nom ()

	i = 0
	while i < 5:
		try:
			sc = int (top_score[i])
		except ValueError:
			raise persistance.ValeurInvalide ("scores",str (i) + ":score")
		else:
			if score_actuel > int(top_score[i]):
				top_score.insert(i, str (score_actuel))
				nom.insert(i, nom_du_joueur)
				break
			i = i + 1

	i = 0
	while i < 5:
		persistance.set_propriete ("scores",str(i)+":score",top_score[i])
		persistance.set_propriete ("scores",str(i)+":nom",nom[i])
		i = i + 1
Пример #2
0
def set_mode (m): 
	""" Change le mode de jeu pour la PROCHAINE partie jouée
		
		@m : str (facile | moyen | difficile) = Le nouveau mode de jeu 

		@return : None
		
		@throw : 
			ModeInvalide
			persistance.FichierInvalide
	"""
	global restant
	
	if m in liste_mode:
		persistance.set_propriete ("config","niveau",m)
	else:
		raise ModeInvalide
Пример #3
0
def choix_theme (nbr_theme = 1):
	""" Sélectionne un thème (modifie le fichier de configuration)
		
		@nbr_theme : int = le numéro du nouveau thème sélectionné
		
		@return : None
		
		@throw :
			persistance.CleInvalide
			persistance.FichierInvalide
			ValueEror # si jamais il y a une valeur erronée dans backgrounds -> theme:max
	"""
	if not isinstance (nbr_theme, int):
		nbr_theme = 1
	
	max_theme = persistance.get_propriete ("backgrounds","theme:max")
	
	if nbr_theme > int (max_theme):
		nbr_theme = 1
	
	persistance.set_propriete ("backgrounds","theme:courant",str (nbr_theme))
Пример #4
0
def gen_fsm ():
	""" Crée la FSM ... c'est toute la fonction la plus importante """
	
	# Variables de la FSM
	fichier = ""
	st = "menu-fichier"

	
	while True:

		# Là est toute la magnificience 
		# on rend la main avec l'état actuel (comme ça les gens peuvent
		# savoir où on est) 
		# mais la prochaine exécution ... demande une action à faire
		# (et comme la boucle est infinie ... on revient toujours attendre 
		# à ce point exact de la boucle :-P.
		req = (yield st) # on sauve dans une variable 
		
		if st == "menu-fichier": # Si on est dans le menu-fichier les commandes sont 
			if req == "list":
				# On affiche la liste des fichiers 
				# disponnibles 
				iconsole.afficher (st, persistance.liste_fichiers ())
			elif req == "entrer":
				# Yop, on transite vers l'état menu-variable
				# SI ET SEULEMENT SI l'utilisateur 
				# a sélectionné un fichier !!!
				if fichier != "":
					st = "menu-variable"
				else:
					iconsole.afficher (st,"Vous n'avez pas sélectionné un fichier ...")
			elif req == "help":
				# L'aide affiche la liste des commandes possibles 
				iconsole.afficher (st, "Les commandes sont : « quit », « list », « entrer », « help » et @Fichier")
			else: # C'est un nom de fichier 
				# On suppose que si ce n'est pas une commande, 
				# c'est un nom de fichier, et on change donc 
				# le fichier sélectionné
				fichier = req
				iconsole.afficher (st,"Vous avez sélectionné " + req)
				
		else: # il n'existe que deux états, celui là est donc menu-variable
			# On a forcément définit un fichier,
			# vu que l'on ne peut être arrivé à cet état 
			# QUE par une transition !
			if req == "list":
				# On affiche simplement la liste des variables disponnibles 
				iconsole.afficher (st, persistance.liste_variables (fichier))
			elif req == "up":
				# On retourne au menu fichier ... tout con 
				st = "menu-fichier"
			elif req == "ou":
				# On dit à l'utilisateur où il se trouve, c'est à dire le fichier courant 
				iconsole.afficher (st, "Le fichier courant est : "+ fichier)
			elif req == "help":
				# On affiche la liste des commandes disponnibles 
				iconsole.afficher (st, "Les commandes sont : « quit », « ou », « list », « help », « up » et @Variable")
			else: # C'est une variable 
				# On suppose que si ce n'est pas une commande c'est une variable 
				# à modifier ... Donc on demande la nouvelle valeur 
				# et on modifie ... 
				try:
					iconsole.afficher (st, "Valeur actuelle : " + str (persistance.get_propriete (fichier,req)))
				except:
					iconsole.afficher (st, "Nouvelle variable !")
				val = iconsole.demander (st,"Nouvelle valeur")
				persistance.set_propriete (fichier,req,val)
				iconsole.afficher (st,"Bien modifié !")