Aller au contenu

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.


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.