Skip to content
dburihabwa edited this page Nov 16, 2012 · 4 revisions

Projet C++ - PPGR : Sokoban

Deuxième itération

  • La deuxième itération doit être postée dans la rubrique "Travaux" du cours 3BINPPG sur ecampus.ipl.be avant le dimanche 25 novembre 23h59. Elle inclura tous les fichiers nécessaires à la compilation et l'exécution du projet sur l'environnement de l'IPL. Vous devez ajouter un fichier de type "readme" présentant brièvement les aspects pragmatiques de votre application (au minimum les fonctionnalités et touches et boutons graphiques qui y sont associées, ainsi que la structure du graphe de scène) ;

  • La méthode "main" doit simplement instancier d'autres classes, puis récupérer le viewer osg et renvoyer un appel de la méthode "run()" de celui-ci ;

  • Tout ce qui a trait à la gestion des emplacements des éléments mobiles et à la logique du jeu doit dépendre d'une classe "Model". L'osg::Viewer doit être déclaré et instancié dans une classe "View" dont dépendra tout ce qui concerne la définition du graphe de scène ;

  • A l'exception de l'apparence graphique, les exigences de la première itération sont toujours d'application;

  • De plus, votre application devra répondre aux exigences suivantes au terme de cette deuxième itération, points qui seront pris en compte dans l'évaluation en plus des remarques préliminaires incluses dans le document présentant le contexte de l'application :

  • Le tableau de jeu doit être "gelé" lorsqu'il est résolu (toutes les caisses sont sur des emplacements de rangement) ; Au minimum trois labyrinthes différents de dimensions différentes doivent être disponibles dans des fichiers ressources, permettant de proposer un niveau suivant lorsque le niveau en cours est achevé ;

  • Des boutons graphiques supplémentaires permettront: de sauvegarder l'état du jeu en cours, de remplacer le jeu en cours par une sauvegarde existante, de revenir au début du niveau en cours, de passer au niveau suivant lorsque le niveau courant est résolu ;

  • La sauvegarde et la récupération de l’état du jeu dans un fichier se fera en redéfinissant les opérateurs >> et <<. Ces opérateurs seront utilisés avec comme membre gauche un fichier et comme membre droit un objet représentant l’état courant du jeu : fichier << jeu ; // sauvegarde de l’état du jeu fichier >> jeu ; // restauration de l’état du jeu

  • Une troisième viewport sera incluse, et offrira à l'utilisateur des messages en texte graphique. On y avertira entre autre l'utilisateur lorsqu'il tente un mouvement impossible et lorsqu'il a achevé le niveau en cours ;

  • L'apparence graphique doit clairement donner une impression de 3D avec projection en perspective. L'utilisateur aura la possibilité de zoomer ou de prendre du recul, dans des limites raisonnables ;

  • Au moins un des objets graphiques devra être entièrement défini dans le code en termes de primitives graphiques, cette définition incluant la ou les couleurs ainsi que les vecteurs normaux ; *Au moins un des objets graphiques devra utiliser une texture pour son apparence finale.

A corriger

  • Changer la Board pour retirer les éléments graphiques
  • Incorporer les éléments graphiques dans une classe spécifique qui sera un Observer
Clone this wiki locally