1er Boss : Cookie Clicker¶
Et oui, comme tout bon parcours qui se respecte, on arrive à un combat de boss.
Ce boss n’est pas là pour introduire de nouveaux concepts,
mais pour vous forcer à réutiliser intelligemment tout ce que vous avez appris jusqu’ici :
classes, objets, attributs, méthodes, et surtout l’état qui évolue dans le temps.
Le sujet est le suivant.
Cookie Clicker (manuel)¶
Vous allez programmer une mini-simulation de Cookie Clicker, en version console, et orientée objet.
L’objectif est simple :
Atteindre 100 cookies.
Mais attention : vous n’êtes pas seul.
Vous pouvez acheter des mamies qui produisent des cookies automatiquement à chaque tour... et qui deviennent plus efficaces avec le temps.
Règles du jeu¶
Les cookies¶
- Vous commencez avec 0 cookie
- Vous pouvez :
- cuisiner un cookie à la main (+1 cookie)
- acheter des mamies
- Les mamies produisent des cookies à chaque tour
Les mamies¶
Une mamie :
- a un nom
- a un niveau
- produit des cookies automatiquement
Règles :
- Une mamie coûte des cookies à l’achat
- À chaque tour :
- elle produit des cookies
- elle gagne de l’expérience
- Toutes les 5 actions, une mamie :
- passe au niveau supérieur
- produit 1 cookie de plus par tour
Condition de victoire¶
Le jeu s’arrête lorsque le nombre de cookies atteint ou dépasse 100.
Exemple d’exécution¶
Pour vous aider à visualiser le résultat attendu, voici un exemple typique :
Nombre de cookies : 0
Objectif de cookies 100
1 : Cuisiner un cookie
2 : Acheter une mamie (coute 3 cookies)
Action : 1
Nombre de cookies : 1
Objectif de cookies 100
1 : Cuisiner un cookie
2 : Acheter une mamie (coute 3 cookies)
Action : 1
Nombre de cookies : 2
Objectif de cookies 100
1 : Cuisiner un cookie
2 : Acheter une mamie (coute 3 cookies)
Action : 1
Nombre de cookies : 3
Objectif de cookies 100
1 : Cuisiner un cookie
2 : Acheter une mamie (coute 3 cookies)
Action : 2
Nom de la mamie : Gertrude
Mamie Gertrude produit 1 cookies.
Nombre de cookies : 1
Objectif de cookies 100
1 : Cuisiner un cookie
2 : Acheter une mamie (coute 5 cookies)
Action : 1
Mamie Gertrude produit 1 cookies.
Nombre de cookies : 3
Objectif de cookies 100
1 : Cuisiner un cookie
2 : Acheter une mamie (coute 5 cookies)
Action : 1
Mamie Gertrude produit 1 cookies.
Mamie Gertrude passe au niveau 2.
Nombre de cookies : 5
Objectif de cookies 100
1 : Cuisiner un cookie
2 : Acheter une mamie (coute 5 cookies)
Action : 2
Nom de la mamie : Jeannette
Mamie Gertrude produit 2 cookies.
Mamie Jeannette produit 1 cookies.
Nombre de cookies : 3
Objectif de cookies 100
1 : Cuisiner un cookie
2 : Acheter une mamie (coute 7 cookies)
Action : 1
Mamie Gertrude produit 2 cookies.
Mamie Jeannette produit 1 cookies.
Nombre de cookies : 7
Objectif de cookies 100
1 : Cuisiner un cookie
Mamie Gertrude produit 2 cookies.
Mamie Jeannette produit 1 cookies.
Nombre de cookies : 7
Objectif de cookies 100
etc...
Contraintes importantes¶
- Le programme doit utiliser la programmation orientée objet
- Les mamies doivent être de vrais objets, avec leur propre état
- Le jeu doit gérer plusieurs mamies en même temps ainsi que leurs évolutions indépendantes
Ce jeu pourrait techniquement être fait sans POO.
Mais l’objectif ici c'est justement d’apprendre à structurer proprement le code dès maintenant, grâce à la programmation objet.
Indices¶
Si vous bloquez, voici quelques pistes.
Indice 1
Créez une classe Mamie qui représente une mamie, et stockez une liste liste_des_mamies, initialement vide, qui contient l'ensemble des mamies créées au fur et à mesure du jeu.
Indice 2
Chaque mamie doit savoir :
- produire des cookies
- évoluer dans le temps
Pour cela, il est nécessaire de garder en mémoire leur nom, leur niveau de production actuel, ainsi qu'une variable stockant leurs points d'expérience.
Indice 3
Pensez à structurer votre programme autour d’une boucle principale : à chaque itération, le joueur choisit une action, puis les mamies produisent.
Bonus (facultatif)¶
Si vous vous sentez à l’aise, vous pouvez :
- faire augmenter le prix des mamies à chaque achat (déjà fait dans l'exemple)
- donner une chance aux mamies de prendre leur retraite après un certain nombre de tour (irréaliste dans la France de Macron mais pourquoi pas)
- afficher le nombre de cookies produits par tour
- donner une chance aux mamies d'évoluer en super mamies à partir d'un certain niveau
- créez des écoles à mamies pour les faire monter de niveau plus vite
- bref, faites vous plaisir !
Conclusion de la partie Bases de la POO¶
Si vous avez réussi ce boss, alors vous savez maintenant :
- créer plusieurs objets
- gérer un état qui évolue dans le temps
- faire coopérer des objets entre eux
- utiliser la POO de manière utile, et pas artificielle
Dans la partie suivante, on va aller plus loin :
- structurer encore mieux le code
- éviter les pièges classiques
- et préparer des projets encore plus ambitieux
Quand vous êtes prêt :
→ Direction la partie Intermédiaire.