projet dans C++ Skill Tree

Créer un jeu de Sokoban avec annulation

Créez un Sokoban jouable dans le terminal en C++, avec déplacements légaux, poussée d’une caisse, vérification réelle des objectifs et annulation de l’état complet.

ProjetC++

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Créer un jeu de Sokoban avec annulation est un projet pratique en C++ destiné aux personnes qui connaissent les bases du langage. Vous créerez un jeu de terminal dans lequel le joueur pousse des caisses sur des objectifs, refuse les déplacements impossibles et peut annuler entièrement l’action précédente.

Le cours associe deux laboratoires guidés à un défi autonome. Vous implémenterez d’abord la marche, la poussée d’une seule caisse et la vérification réelle des objectifs. Vous enregistrerez ensuite des états complets pour les restaurer lors d’une annulation. Enfin, vous appliquerez les mêmes règles à un autre entrepôt à deux caisses. Chaque laboratoire fournit ses propres fichiers ; aucun fichier ni aucune partie en cours ne provient de l’environnement précédent.

Ce que vous apprendrez

À la fin du cours, vous saurez :

  • séparer les murs et objectifs fixes des positions variables du joueur et des caisses ;
  • vérifier les conditions de déplacement et de poussée avant de modifier l’état, pour qu’une action refusée ne change rien ;
  • déduire la réussite de la présence de chaque caisse sur un objectif et la recalculer après un déplacement ou une annulation ;
  • copier les états complets dans un historique vector uniquement pour les déplacements légaux, puis restaurer le joueur et toutes les caisses sans risque ;
  • compiler et utiliser un moteur C++ réutilisable qui accepte plusieurs parcours légaux tout en préservant les niveaux originaux.

À qui s’adresse ce cours

Ce cours s’adresse aux personnes qui apprennent le C++ et souhaitent utiliser les objets, les copies par valeur et les conteneurs standard pour réaliser un programme interactif aux règles précises.

Prérequis : Savoir naviguer dans un terminal et connaître les classes, fonctions, chaînes et vector en C++. Les laboratoires guidés expliquent le terrain fixe, les conditions de déplacement, les instantanés d’état complets et les opérations sur l’historique.

Environnement d’apprentissage : LabEx fournit un environnement Linux préparé dans le navigateur, avec un compilateur C++17, une structure de code, de petits niveaux, un exemple fonctionnel et Terminal. Les commandes du jeu, ses messages et les sorties du terminal restent en anglais.

Questions fréquentes

Dois-je écrire toute l’application du jeu ?

Vous implémenterez les fonctions de déplacement, de réussite et d’annulation dans engine.cpp. Le chargement des niveaux, l’affichage textuel et la lecture des commandes sont préparés. Vous compilerez votre moteur en un programme jouable, sans installation locale ni moteur graphique.

Dois-je trouver la solution la plus courte ?

Non. Plusieurs parcours légaux sont acceptés. Le projet porte sur des changements d’état corrects et une annulation complète, pas sur la résolution automatique ou le nombre minimal de coups.

Puis-je annuler une poussée gagnante ?

Oui. La partie peut continuer après la réussite, et l’annulation restaure le joueur et toutes les caisses, y compris l’état précédant une poussée gagnante. L’historique appartient à la partie en mémoire ; relancer le programme commence une nouvelle partie au lieu de charger une session sauvegardée.

Enseignant

labby
Labby
Labby is the LabEx teacher.

Recommandé pour vous

no data