Outils pour utilisateurs

Outils du site


programmation:python:prob3

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
programmation:python:prob3 [19/11/2018 05:35]
sky99 créée
programmation:python:prob3 [19/11/2018 06:00] (Version actuelle)
sky99
Ligne 18: Ligne 18:
 Si le joueur n'a pas trouvé le nombre mystère, le score est égal à N_MAX - valeur_absolue(nombre_mystère - dernière_valeur_joueur) Si le joueur n'a pas trouvé le nombre mystère, le score est égal à N_MAX - valeur_absolue(nombre_mystère - dernière_valeur_joueur)
  
-**Rappel** N_MAX est la valeur maximale du nombre mystère, définie dans votre code.+:!:**Rappel** N_MAX est la valeur maximale du nombre mystère, définie dans votre code.
  
-**Indication** : Pour utiliser la valeur absolue en python, il suffit de faire <code python>​abs(valeur)</​code>​. Par exemple, abs(-1) retournera 1. Cela permet d'​avoir un score positif.+:!:**Indication** : Pour utiliser la valeur absolue en python, il suffit de faire <code python>​abs(valeur)</​code>​. Par exemple, abs(-1) retournera 1. Cela permet d'​avoir un score positif.
  
 [[http://​apprendre-python.com/​page-builtin-built-in-fonctions-internes-python|De la doc en FR sur les fonctions de base de python, dont abs()]] [[http://​apprendre-python.com/​page-builtin-built-in-fonctions-internes-python|De la doc en FR sur les fonctions de base de python, dont abs()]]
Ligne 39: Ligne 39:
 Cela signifie que vous devez créer une nouvelle variable //​score_total//​ qui débute à 0. Cela signifie que vous devez créer une nouvelle variable //​score_total//​ qui débute à 0.
 Il faudra donc ajouter à cette variable score_total le score de la manche à la fin de celle ci. Il faudra donc ajouter à cette variable score_total le score de la manche à la fin de celle ci.
 +
 +===== Mode continu =====
 +A la fin de chaque partie, quand toutes les manches sont écoulées, trois choix sont proposés au joueur : 
 +  - continuer la même partie : le score est conservé
 +  - nouvelle partie : le score est remis à zéro
 +  - quitter : le jeu se termine.
 +
 +Il faudra donc faire une fonction qui affiche un menu avec les options disponibles et fait l'​action demandée.
 +:!: **Indication** Pour quitter le programme, on fera en début de code : 
 +<code python> import sys</​code>​
 +Et à l'​endroit ou on souhaite quitter, on fera : 
 +<code python>​sys.exit(1)</​code>​
  
 ===== Bonus et malus ===== ===== Bonus et malus =====
 Nous allons maintenant modifier le jeu pour ajouter des bonus et des malus, afin de le rendre plus intéressant. Nous allons maintenant modifier le jeu pour ajouter des bonus et des malus, afin de le rendre plus intéressant.
-==== Ajout des malus ==== + 
-A la fin de chaque manche perdue, N_MAX sera augmentée d'un cinquième de sa valeur. Pour +==== Ajout de malus ==== 
 +A la fin de chaque manche perdue, N_MAX sera augmentée d'un cinquième de sa valeur. ​ 
 + 
 +:?: Pour calculer cela, on utilise l'​opérateur de division entière : 
 +<code python>​malus = n_max // 5 </​code>​ 
 +Bien sur, il faudra ajouter ce malus à n_max. 
 + 
 +:​!:​**Indication** En python, la convention est d'​écrire les variables en minuscule , comme ceci : //​variable//​ ou //​autre_variable//​ , et d'​écrire les constantes en majuscules, comme //N_MAX//. Puisque nous allons modifier la valeur de N_MAX au cours de la partie, ce n'est plus une constante, mais une variable. On va donc remplacer N_MAX par n_max dans le code. 
 +Pour cela, utilisez l'​outil recherche et remplacement de Atom, en appuyant sur la touche F3. 
 + 
 +==== Ajout de bonus ==== 
 +A la fin de chaque manche ou de chaque partie, le joueur peut dépenser X points pour acheter une vie pour la partie suivante, avec <code python>X = n_max + n_max // 2</​code>​. 
 + 
 +Il peut également dépenser 10 * n_max points pour réduire n_max de 25% : 
 +<code python> n_max = n_max - ( n_max // 4) </​code>​ 
 + 
 +En pratique, cela signifie que vous devez proposer à la fin de chaque manche/​partie un menu qui propose au joueur de faire des achats. On affichera derrière chacune des deux options le prix en points, et le score du joueur devra être visible au dessus de la liste des achats possibles. 
 +Une dernière option sera toujours disponible : passer à la manche suivante, qui ne coute rien. 
 + 
 +Si le joueur décide de faire un achat, l'​ordinateur vérifie s'il a assez de points pour effectuer l'​achat. Si ce n'est pas le cas, alors l'​ordinateur affichera "vous n'avez pas assez de points"​. Si en revanche le joueur dispose d'​assez de points, alors il obtient le bonus, et son score est diminué du montant de l'​achat. 
 + 
 +===== Sauvegarde du score ===== 
 +Pour ceux qui ont tout fini :  
 +Cherchez comment sauvegarder dans un fichier (idéalement json) la liste des meilleurs scores, et permettez aux joueurs de voir cette liste dans le jeu. Idéalement,​ on limite la liste (par exemple les 3 meilleurs scores), ce qui incite à battre les scores des autres pour insérer le sien dans le classement. 
 + 
 + 
  
  
programmation/python/prob3.1542602105.txt.gz · Dernière modification: 19/11/2018 05:35 par sky99